字串問題 將整數字串轉換成整數值

2022-07-26 23:00:23 字數 1197 閱讀 2880

給定乙個字串str,如果str符合日常書寫的規範,並屬於32位整數的範圍,返回str所代表的整數值,否則返回0。如 023, a13, 2147483648,均返回0。

【解題思路】

定義四個變數,flag表示正負,res表示結果,minq表示最小值除以10的商,minr表示最小值除以10 的餘數。因為最小值是 -2147483648,最大值是2147483647,負數有更大的範圍,所以以負數的形式保留絕對值,最後根據flag進行修改。

package

com.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位系統...