LeetCode--8. String to Integer (atoi)
大意:将字符串转换成数字
需要注意:
数字前有空格
数字中间有非数字字符(字母后面的舍弃)
存在多个正负号(返回0)
public static int myAtoi(String str) { str = str.trim(); //去掉前面的空格 long solu =0; long maxint = Integer.MAX_VALUE; int len = str.length(); boolean isPositive = true; boolean flag = false; char c ; for(int i = 0 ; i <len ;i++){ c = str.charAt(i); if(c == '-'||c=='+'){ if(flag == true) return 0; else{ if(c=='-') isPositive = false; flag = true; } } else if(c >'9'||c<'0') break; else { solu = solu*10+c-'0'; if(solu>maxint&&isPositive==true) return Integer.MAX_VALUE; if(solu>maxint+1&&isPositive == false){ return Integer.MIN_VALUE; } } } if( isPositive == false) solu = - solu; return (int)solu; }
测试用例:
public static void main(String args[]){ System.out.println(myAtoi("-111")); System.out.println(myAtoi("0000")); System.out.println(myAtoi(" 15")); System.out.println(myAtoi(" 1asdf67")); System.out.println(myAtoi(" 2147483648")); System.out.println(myAtoi(" -2147483648")); System.out.println(myAtoi(" -2147483649")); System.out.println(myAtoi("+-5")); System.out.println(myAtoi(" 010")); }

浙公网安备 33010602011771号