我通过输入 Scanner class
请求电话号码,我只强制输入号码,但我可能会出错。我需要的是一串整数,而不是一个整数并且比一个整数的大小容量更大的东西。最终,它的长度需要是 7 个整数或 10 个整数,不能介于两者之间或更多或更少,但当然是所有数字而不是字母。
System.out.println("What is the phone number (digits only)?: ");
while (!Main.scan.hasNextInt())
{
Main.scan.next();
System.out.println("What is the phone number (digits only)?: ");
}
int phone_number = Main.scan.nextInt();
Clearfication string of ints - 不是指 ints 数组而是一系列独立的 ints 但当然如果你分配为一个 ints,它无法分辨差异所以你必须使用 long。这就是我要引用的事实,我的电话号码是一系列整数而不是一个整数,所以原始类型对我来说是一半正确一半错误。
解决方案:感谢 Braj !!
String numbers = Main.scan.next();
long phone_number = 0 ;
while (!numbers.matches("(\\d{7}|\\d{10})$"))
{
System.out.println("What is the patient's phone number (digits only)?: ");
numbers = Main.scan.next();
}
phone_number = Long.valueOf(numbers);
最佳答案
电话号码不是整数:987-555-1212 不代表数字九十亿、八亿七千五百万、五十五万一千二百二。这只是一串数字。
电话号码也可以很长(很多位),比如分机号码和特殊拨号代码,甚至可以包含“#”和“*”等符号。
我会将电话号码存储为字符串,并使用代码检查用户的输入是否包含无效字符。
关于Java - nextInt() 大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793389/