系统层知识

符串转换成整数(Java)

2018-12-23  本文已影响0人  介和

public    class StringToInt {

    public     static   int   Max_INT = Integer.MAX_VALUE;

    public    static  int   Min_INT = Integer.MIN_VALUE;

    public     int getStringToInt(String A){

        char[] arrayA = A.toCharArray();

        intn = 0;

        if(A.equals("") || A.equals(null))//判断输入是否为空return0;

        inti = 0;

        while(arrayA[i] == ' ')//处理字符串首位的空格i++;

        intsign = 1;

//用于判定输入字符串数字的正负,初始化为1表示为正数

if(arrayA[i] == '+' || arrayA[i] == '-')

{

            if(arrayA[i] == '-')

                sign = -1;

            i++;

        }

 while(i < arrayA.length && Character.isDigit(arrayA[i]))

{          //确定是数字0~9才执行循环

            intc = arrayA[i] - '0';

            //当输入字符串表示数为正数,且大于Max_INT

          if(sign > 0 && (n > Max_INT/10 || (n == Max_INT/10 && c > Max_INT%10))){

                         n = Max_INT;

                           break;

            }

            //当输入字符串表示数为负数,且小于Min_INT

        if(   sign < 0 && (n + Min_INT/10 > 0 || (n + Min_INT/10 == 0 && c + Min_INT%10 > 0)))

         {

                n = Min_INT;

                break;

            }

            //把之前得到的数字乘以10,再加上 当前字符表示的数字n = n*10 + c;

            i++;

        }

        returnsign > 0 ? n : -n;

    }

    publicstaticvoid main(String[] args){

        StringToInt test =new StringToInt();

        Scanner in =new Scanner(System.in);

        System.out.println("请输入一个由数字组成的字符串:");

        String A = in.nextLine();

        intresult = test.getStringToInt(A);

        System.out.println("整数result = "+result);

    }

}

上一篇 下一篇

猜你喜欢

热点阅读