gpt4 book ai didi

java - 验证 7 位电话号码

转载 作者:行者123 更新时间:2023-11-29 07:05:02 24 4
gpt4 key购买 nike

我想要完成的是以下...要求用户输入数字并检查用户输入的数字是否为 7 位整数。如果是字符串,抛出 InputMismatchException 并再次询问数字。除了使用正则表达式并提供数字格式为 1234567 之外,是否有一种简单的方法可以实现此目的?另一个问题是如果我输入一个值,例如 12345678,它会由于 int 而四舍五入,那么如何避免这种情况。

int number = 0;
try {
number = scan.nextInt(); // Phone Number is 7 digits long - excludes area code
} catch(InputMismatchException e) {
System.out.println("Invalid Input.");
number = validateNumber(number, scan);
} finally {
scan.nextLine(); // consumes "\n" character in buffer
}

// Method checks to see if the phone number provided is 7 digits long
// Precondition: the number provided is a positive integer
// Postcondition: returns a 7 digit positive integer
public static int validateNumber(int phoneNumber, Scanner scan) {
int number = phoneNumber;
// edited while((String.valueOf(number)).length() != 7) to account for only positive values
// Continue to ask for 7 digit number until a positive 7 digit number is provided
while(number < 1000000 || number > 9999999) {
try {
System.out.print("Number must be 7 digits long. Please provide the number again: ");
number = scan.nextInt(); // reads next integer provided
} catch(InputMismatchException e) { // outputs error message if value provided is not an integer
System.out.println("Incorrect input type.");
} finally {
scan.nextLine(); // consumes "\n" character in buffer
}
}
return number;
}

最佳答案

有效的电话号码不一定是整数(例如包含国家代码的 + 符号)。所以改用字符串。

基本正则表达式的简单示例(7 位数字,不验证国家代码等):

public class Test {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);


String telephoneNumber = stdin.nextLine();

System.out.println(Pattern.matches("[0-9]{7}", telephoneNumber));


}
}

关于java - 验证 7 位电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20767895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com