符串转换成整数(Java)
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);
}
}