把字符串转换为整数

题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为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;
    }
}

推荐阅读更多精彩内容