gpt4 book ai didi

java - 如何计算电话号码字符串中破折号(-)的数量以进行输入验证?

转载 作者:行者123 更新时间:2023-12-01 18:25:37 25 4
gpt4 key购买 nike

我有一个程序,它读取用户输入的电话号码并返回国家代码(如果存在)、区号(如果存在)和本地 7 位电话号码。
该号码必须以国家/地区代码-地区-本地形式输入。因此,电话号码中最多可以有两个破折号。

例如:
1-800-5555678 有两个破折号(它有国家代码和区号)
800-5555678 有一个破折号(只有区号)
5555678 没有破折号(仅本地号码)

因此,可以有零个破折号、一个破折号或两个破折号,但不能超过两个。


我想弄清楚的是如何计算字符串中破折号(“-”)的数量,以确保它们的实例不超过两个。如果有,就会打印错误。

到目前为止,我已经:

if(phoneNumber ///contains more more than two dashed
{
System.out.println("Error, your input has more than two dashes. Please input using the specified format.");
{
else
{
//normal operations
}

到目前为止,除了这一部分之外,一切正常。我不确定使用什么方法来做到这一点。我尝试查看indexOf,但我被难住了。

最佳答案

一种方法是将数字解析为字符串,然后在破折号上拆分。如果你得到的新数组的长度大于3则给出错误。

String s = "1-800-5555678";
String parts[] = s.split("-");
if (parts.length > 3) {
System.out.println("error");
} else {
// do something
}

samrap 建议的内存效率更高的解决方案是:

String s = "1-800-555-5678";
int dashes = s.split("-").length - 1;
if (dashes > 2) {
System.out.print("error");
} else {
// do something
}

关于java - 如何计算电话号码字符串中破折号(-)的数量以进行输入验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304783/

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