注:整型数字字符串首字节可能是符号位,如“-123”不能调用相关类的API的方法

解决方案 »

  1.   


    public static int toInt(String numstr){
            int result = 0;
            int sign = 1;
            for(int i=0;i<numstr.length();i++){
                int ch = numstr.charAt(i);
                if(i==0 && ch == '-'){//处理符号位
                    sign = -1;
                }else if(i==0 && ch == '+'){//处理符号位
                    sign = 1;
                }else{
                    result = result*10 + (ch-'0');
                }
            }
            return sign * result;
        }
        public static void main(String[] args) {
            String numstr = "-123";
            System.out.println(toInt(numstr));
        }
      

  2.   

    有API为什么不用?
    Integer.parseInt(str);
      

  3.   

        private static int toInteger(String num){
         int number = 0;
         char[] charArr = num.toCharArray();     if(num.charAt(0) == '-'){
         for (int j = 1;j < charArr.length ;j++) {
         number = (number*10 + (charArr[j] - '0'));
    }
         number *= -1;
         }else{
         for (int j = 0;j < charArr.length ;j++) {
         number = number*10 + (charArr[j] - '0');
    }
         }
    return number;
        
        }