將一個(gè)字符串轉(zhuǎn)換成一個(gè)整數(shù)(實(shí)現(xiàn)Integer.valueOf(string)的功能,但是string不符合數(shù)字要求時(shí)返回0)哥攘,要求不能使用字符串轉(zhuǎn)換整數(shù)的庫(kù)函數(shù)。 數(shù)值為0或者字符串不是一個(gè)合法的數(shù)值則返回0。
輸入描述:
輸入一個(gè)字符串,包括數(shù)字字母符號(hào),可以為空。
輸出描述:
如果是合法的數(shù)值表達(dá)則返回該數(shù)字氢哮,否則返回0。
輸入
+2147483647
1a33
輸出
2147483647
0
function StrToInt(str) {
if (str.length === 0) return 0
let flag = 0
if (str.charAt(0) === '+') {
flag = 1
} else if (str.charAt(0) === '-') {
flag = 2
}
let start = flag > 0 ? 1 : 0
let res = 0
while (start < str.length) {
if (str.charAt(start) > '9' || str.charAt(start) < '0') {
return 0
}
res = res * 10 + (str.charAt(start) - '0')
start++
}
return flag === 2 ? -res : res
}