您的位置:首页 > 其它

atoi

2015-10-01 23:56 169 查看
考虑+-号

允许前面有空格

但是string输入的数要是标准格式如正数或者负数,或者无符号数。不允许出现例如+-2这种,如果出现,输出0

如果溢出,输出整数的最大值(输入为正数)或者整数的最小值(输入为负数)

package arrayAndString;
import java.util.*;
public class StringToInteger {
private String s;
private int MaxDiv10 = Integer.MAX_VALUE/10;
public StringToInteger() {
Scanner sc = new Scanner(System.in);
s = sc.nextLine();
}
public int solve() {
int n = s.length();
int i = 0;
while(i<n&&Character.isWhitespace(s.charAt(i))) i++;
int sign = 1;
if(i<n&&s.charAt(i)=='-') {
sign = -1;
i++;
} else if(i<n&&s.charAt(i)=='+') {
sign = 1;
i++;
}
int num = 0;
while(i<n&&Character.isDigit(s.charAt(i))) {
int digit = Character.getNumericValue(s.charAt(i));
if(num>MaxDiv10||(num==MaxDiv10&&digit>=8)) {
return sign>0?Integer.MAX_VALUE:Integer.MIN_VALUE;
}
num = num*10+digit;
i++;
}
return sign*num;
}
public static void main(String[] args) {
// TODO Auto-generated method stub

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: