我个人偏向用ACSII值转换成数学问题。
去首尾空格
首字符判断正负
非正负字符过滤首字母0
import java.util.*;
public class Solution {
/**
*
* @param str string字符串
* @return int整型
*/
public int atoi (String str) {
// write code here
str=str.trim();
//创建一个字符串对象
//ASCII 48-57 为数字 43 + 45 -
boolean fs=false;
String retStr="";
for(int x=0;x<str.length();x++){
int a =(int)str.charAt(x);
if(retStr.length()==0){
if(a==43){
continue;
}
if(a==45){
fs=true;
continue;
}
}
if(a>=48 && a<=57 ) {
if(!(a==48 && retStr.length()==0)){
retStr+=(a-48);
}
continue;
}
break;
}
if("".equals(retStr)){
return 0;
}
return fs==true?0-Integer.valueOf(retStr):Integer.valueOf(retStr);
}
}