没啥好说的,就是首位要进行一次符号判断,其他位进行数字判断
代码:
public int StrToInt(String str) {
if (str==null||str.length()<1){
return 0;
}
//正负值,默认正
int flag=1;
int num=0;
for (int i = 0; i < str.toCharArray().length; i++) {
if (i==0){
if (str.charAt(i)=='+'&&str.length()>1){
}else if (str.charAt(i)=='-'&&str.length()>1){
flag=-1;
}else if (str.charAt(i)=='0'&&str.length()==1){
}else if (str.charAt(i)>'0'&&str.charAt(i)<='9'){
num=str.charAt(i)-'0';
} else{
return 0;
}
}else {
if (str.charAt(i)<'0'||str.charAt(i)>'9'){
return 0;
}else {
num=num*10+(str.charAt(i)-'0');
}
}
}
return flag*num;
}