如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。
假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。
该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/string-to-integer-atoi
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public int myAtoi(String s) {
char []chars =s.toCharArray();
int n = chars.length;
int idx=0;
while(idx <n && chars[idx]==' '){
//去掉空格
idx++;
}
if(idx==n){
return 0;
}
boolean flag =false;
if(chars[idx]=='-'){
flag=true;
idx++;
}else if(chars[idx]=='+'){
idx++;
}else if(!Character.isDigit(chars[idx])){
return 0;
}
int ans =0;
while(idx<n && Character.isDigit(chars[idx])){
int digit =chars[idx] -'0';
if(ans>(Integer.MAX_VALUE-digit)/10){
return flag?Integer.MIN_VALUE : Integer.MAX_VALUE;
}
ans =ans*10+digit;
idx++;
}
return flag ? -ans :ans;
}
}
298

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



