题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
import java.util.HashMap;
import java.util.Map;
public class Solution {
public int StrToInt(String str) {
if(str == null || str.length() == 0)
return 0;
char c = '1';
Map<Character,Integer> map = new HashMap<Character,Integer>();
for(int i = 1; i < 10; i++){
map.put(c, i);
c ++;
}
int sign = 1;
int i = 0;
if(str.charAt(0) == '+') {
sign = 1;
i ++;
}
else if(str.charAt(0) == '-') {
sign = -1;
i ++;
}
int sum = 0;
for(; i < str.length(); i++) {
if(map.containsKey(str.charAt(i))) {
sum *= 10;
sum += map.get(str.charAt(i));
}else
return 0;
}
sum *= sign;
return sum;
}
}