我有一个像这样的
的扫描仪Scanner telnumscanner = new Scanner(System.in);
System.out.print("Entrez phone number: \n");
int telnum = telnumscanner.nextInt();
我在那里输入了一个电话号码样式(0000000000--10个数字)但是当我输入号码时,它会崩溃。
答案 0 :(得分:5)
您正在读取的数字太大而无法被int
类型保存为整数变量。通常,您不应将电话号码信息存储在数字数据类型中。考虑将此信息存储在String
。
请参阅telnumscanner.nextLine()
答案 1 :(得分:2)
因为Java int
的允许范围介于-2,147,483,648
和2,147,483,647
之间。尝试读取高于2,147,483,647
的10位数值将产生异常。
要解决而不是使用nextInt()
,请使用nextLong()
并将输入读入long
类型的变量。或者,不要使用数字类型来存储电话号码,而是将其存储为字符串。
答案 2 :(得分:2)
尝试将其存储为长时间。
long telnum = telnumscanner.next();
长期可以存储从-9223372036854775808到9223372036854775807的值
我相信你也可以使用next()而不是nextLong()。如果我错了,有人会纠正我。