publicclassSolution{publicstaticboolean flag;publicstaticintStrToInt(String str){
flag =false;//判断输入是否合法 if(str == null || str.trim().equals("")){
flag =true;return0;}// symbol=0,说明该数为正数;symbol=1,该数为负数;start用来区分第一位是否为符号位 int symbol =0;int start =0;char[] chars = str.trim().toCharArray();if(chars[0]=='+'){
start =1;}elseif(chars[0]=='-'){
start =1;
symbol =1;}int result =0;for(int i = start; i < chars.length; i++){if(chars[i]>'9'|| chars[i]<'0'){
flag =true;return0;}int sum= result *10+(int)(chars[i]-'0');if((sum-(int)(chars[i]-'0'))/10!=result){
flag=true;return0;}
result=result *10+(int)(chars[i]-'0');}// 注意:java中-1的n次方不能用:(-1)^n .'^'异或运算 // 注意,当value=-2147483648时,value=-value
result =(int) Math.pow(-1, symbol)* result;return result;}}
publicclassSolution{publicintStrToInt(String str){if(str.equals("")|| str.length()==0)return0;char[] a = str.toCharArray();int fuhao =0;if(a[0]=='-')
fuhao =1;int sum =0;for(int i = fuhao; i < a.length; i++){if(a[i]=='+')continue;if(a[i]<'0'|| a[i]>'9')//48代表‘0’,57代表‘9’return0;
sum =(sum<<1)+(sum<<3)+(a[i]&0xf);//sum = sum * 10 + a[i] - 48; sum = (sum<<1)+(sum<<3) + (a[i] & 0xf); sum*10=sum*(2^1+2^3)}return fuhao ==0? sum : sum *-1;}}