class Solution {
public int myAtoi(String str) {
long save = 0;
int operator=0;//表示正,1表示负。
int i=0;
str=str.trim();
if(str.equals("")) return 0;
System.out.println(str);
if((str.charAt(0)<48||str.charAt(0)>57)) {
if(!(str.charAt(0)=='-'||str.charAt(0)=='+'))
return 0;
}
if(str.charAt(0)=='-') {operator=1;i=1;}
if(str.charAt(0)=='+') {operator=0;i=1;}
StringBuffer buffer=new StringBuffer();
for(;i<str.length();i++) {
char ch=str.charAt(i);
if(ch<48||ch>57) {
break;
}
buffer.append(ch);
if(buffer.length()<=0) return 0;
save=Long.parseLong(buffer.toString());
if(save>Integer.MAX_VALUE) {
save=(long) Integer.MAX_VALUE;
if(operator==1)
save+=1;
break;
}
}
if(operator==1) {
save=-save;
}
return (int)save;
}
}
此题无难点,只要注意一些特殊的用例就可以了。