将字符串转化为数字,即将字符串开头的空格忽略(如果有的话),将‘-’转为负号,将‘1’到‘9’化为数字1到9。将其返回即可(默认不超出int表示范围,即不做溢出判断,若需要溢出检查,在while中增加溢出判断即可,若溢出且f>0,则上溢;溢出f<0,则下溢)。
public int myAtoi(String s) {
long r = 0; //最终返回值
int i = 0; //遍历数字指针
int f = 1; //判断符号位
s = s.trim(); //去掉空格
int s1 = s.length(); //获取长度
if(s1 == 0) return 0; //若只有空格则返回0
char c = s.charAt(i); //获取第一个字符
if (c == '+' || c == '-') { //判断符号位
if (c == '-') f = -1; //第一个非空字符为-,则是负数
i++; //转向下一个字符
if (i < s1) { //若未遍历完则更新c
c = s.charAt(i);
}
}
while (i < s1 && (c >= '0' && c <= '9')) { //将字符转为数字
r = (c - '0') + r * 10; //字符串转为数字
i++;
if (i < s1) { //未遍历完更新c
c = s.charAt(i);
}
}
return (int)(r * f);
}
字符串转为数字
最新推荐文章于 2023-03-19 18:18:26 发布
1803

被折叠的 条评论
为什么被折叠?



