我想将字符串值转换为整数,但我不能。我的陈述检查了
=Integer.parseInt(input);
有错误,请提前帮助并多多感谢。
import java.util.Scanner;
public class ass2a
{
public static void main(String []args)
{
Scanner reader = new Scanner(System.in);
String input,b;
long checked;
System.out.print("Please enter the 12 digit:");
input = reader.nextLine();
if(input.length() < 12)
{
System.out.println("The digit is less than 12.");
}
int one,two,three,four,five,six,seven,eight,nine,ten,eleven,twevle;
checked =Integer.parseInt(input);
System.out.println(checked);
}
}
答案 0 :(得分:2)
使用checked =Long.parseLong(input);
代替checked =Integer.parseInt(input);
12位数字非常大,因此您无法将其存储在int
中。因此您需要存储在Long
答案 1 :(得分:0)
12位数字是一个非常大的数字...整数不能存储它。那是你的错误 - 所以你需要另一种类型来存储号码。
我建议你使用Long:Long.parseLong(输入);
那应该可以解决问题。
答案 2 :(得分:0)
您收到错误,因为您输入的字符串值大于2147483647.这是max int可以存储的(您可以使用sysout Integer.MAX_VALUE来检查)。如果您打算输入更大的数字,可能是您可以使用长(最大值9223372036854775807)
System.out.println(Integer.MAX_VALUE); // =2147483647 (2^31 - 1)
System.out.println(Long.MAX_VALUE); // =9223372036854775807 (2^63 - 1)
根据输入的大小,您可能希望选择正确的数据类型。
有关详细信息,请参阅http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html。
答案 3 :(得分:0)
您的问题是这一行:
input = reader.nextLine();
试试这个:
checked = Long.parseLong(input);
答案 4 :(得分:0)
使用
checked= Long.parseLong(input)
而不是
Integer.parseInt
它无法处理12位数的长号
答案 5 :(得分:0)
以下是更正的程序(假设您尝试查找用户输入的数字是否小于12并显示数字
import java.util.Scanner;
public class ass2a
{
public static void main(String []args)
{
Scanner reader = new Scanner(System.in);
long input,b;
long checked;
System.out.print("Please enter the 12 digit:");
input = reader.nextLong();
if(String.valueOf(input).length() < 12)
{
System.out.println("The digit is less than 12.");
}
int one,two,three,four,five,six,seven,eight,nine,ten,eleven,twevle;
checked =(long)(input);
System.out.println(checked);
}
}