把字符串转换成整数

把字符串转换成整数

题目描述

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

  • 重点在于每次需要移位,移位对应十进制是10,对应二进制是1010,所以移一位,再移三位。
  • 注意还需要判断符号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function StrToInt(str)
{
// write code here
let res=0;
let flag=1;
var n=str.length;
if(!n)return 0;
if(str[0]=='-'){
flag=-1;
}
for(var i= str[0]=='-'||str[0]=='+'?1:0;i<n;i++){
if(str[i]<='0'||str[i]>='9')return 0;
res=(res<<1)+(res<<3)+(str[i]-'0')
}
return res*flag;
}