atoi

来源:互联网 发布:js查找节点的三种方法 编辑:程序博客网 时间:2024/05/18 00:33

考虑+-号

允许前面有空格

但是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}}


0 0
原创粉丝点击