給定乙個字串str,如果str符合日常書寫的規範,並屬於32位整數的範圍,返回str所代表的整數值,否則返回0。如 023, a13, 2147483648,均返回0。
【解題思路】
定義四個變數,flag表示正負,res表示結果,minq表示最小值除以10的商,minr表示最小值除以10 的餘數。因為最小值是 -2147483648,最大值是2147483647,負數有更大的範圍,所以以負數的形式保留絕對值,最後根據flag進行修改。
packagecom.test;
/*** created by demrystv. */
public
class
convertnumatr2numval
//不符合格式要求,不能轉
char chars =str.tochararray();
if (!isvalid(chars))
boolean flag = chars[0] == '-' ? false : true
;
int minq = integer.min_value / 10;
int minr = integer.min_value % 10;
int res = 0;
int cur = 0;
for (int i = flag ? 0 : 1; i < chars.length; i++)
res = res * 10 +cur;
}//正好比整數的最大值大1
if (flag && res ==integer.min_value)
return flag ? -res : res;
}private
boolean isvalid(char
chars)
//- 或者 -012 這種情況
if (chars[0] == '-' && (chars.length == 1 || chars[1] == 0))
//012這種情況
if (chars[0] == '0' && chars.length > 1)
//從第二位開始,對應的是 0b2
for (int i = 1; i < chars.length; i++)
}return
true
; }
}
字串之將整數字串轉成整數值
字串之將整形字串轉成整數值,並且屬於32位整數範圍 str 123 返回 123 str 012 不符合書寫習慣,所以返回0 str a12 返回0 str 0 返回 0 str 214783647 返回 214783647 str 214783647 因為溢位了,所以返回 0 package co...
YTU OJ 將整數轉換成字串
問題及 time limit 1 sec memory limit 128 mb submit 135 solved 66 submit status web board 用遞迴法將乙個整數n轉換成字串。例如,輸入483,應輸出字串 483 n的位數不確定,可以是任意位數的整數。提交函式conver...
字串轉換成整數
題目詳情 輸入乙個表示整數的字串,把該字串轉換成整數並輸出,例如輸入字串 345 則輸出整數345。請完成函式strtoint,實現字串轉換成整數的功能。友情提醒 提交 之前,請複查下你的程式,比如當給的字串是如左邊所示的時候,有考慮到麼?當然,它們各自對應的正確輸出如右邊所示 假定你是在32位系統...