gpt4 book ai didi

Java:检查电话号码是否符合有效格式

转载 作者:行者123 更新时间:2023-12-02 04:19:36 25 4
gpt4 key购买 nike

我正在尝试查找电话号码是否符合 (xxx)xxx-xxxx 格式,其中 x 是数字。首先,我有长度和“(”、“)”和“-”的程序。当我输入不起作用的内容时,我会得到逻辑输出。但是,当我输入格式正确的数字时,我的程序不会返回任何内容。

import java.util.Scanner;
public class Program04 {
public static void main(String args[])
{
Scanner stdIn = new Scanner(System.in);
String pN;

System.out.print("Please enter a phone number (ddd)ddd-dddd :");
pN = stdIn.nextLine();
char a = pN.charAt(1);
char b = pN.charAt(2);
char c = pN.charAt(3);
char d = pN.charAt(5);
char e = pN.charAt(6);
char f = pN.charAt(7);
char g = pN.charAt(9);
char h = pN.charAt(10);
char i = pN.charAt(11);
char j = pN.charAt(12);



if (pN.length() == 13 && pN.charAt(0)=='(' && pN.charAt(4)== ')' && pN.charAt(8)=='-')
{




if (a>=0 && a<=9)
{
if (b>=0 && b<=9)
{
if (c>=0 && c<=9)
{
if (d>=0 && d<=9)
{
if (e>=0 && e<=9)
{
if (f>=0 && f<=9)
{
if (g>=0 && g<=9)
{
if (h>=0 && h<=9)
{
if (i>=0 && i<=9)
{
if (j>=0 && j<=9)
{

System.out.print("This is a valid phone number!");
}
}
}
}
}
}
}
}
}
}


}


else System.out.println("Not a vaid phone number.");
}

}

最佳答案

使用模式匹配(正则表达式)进行验证更容易:

...
pN = stdIn.nextLine();
System.out.println(pN.matches("\\(\\d{3}\\)\\d{3}-\\d{4}"));

即使您想让它检查每个字符是否是数字,使用如此多的嵌套 if 也不是可行的方法。相反,定义一个应用检查的简单方法,例如:

private static boolean isDigit(char x) {
return x>=0 && x<=9;
}

然后执行:

if ( isDigit(a) && isDigit(b) && ...) {
return true;
}
else {
return false;
}

关于Java:检查电话号码是否符合有效格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928715/

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