我正在写一些内容,它会根据用户输入的电话号码,并根据五个参数告诉用户输入是否有效:
到目前为止,除了第五个参数外,我已经完成所有工作。我的代码如下:
if (number.contains("[0-9]+"))
{
ints = true;
if (number.contains("[a-zA-Z]*\\d+."))
{
ints = false;
}
}
else
{
ints = false;
}
(旁注:数字是我的字符串,是用户的输入,而ints是代码中前面声明的布尔值。)
答案 0 :(得分:2)
这是一个正则表达式。
Pattern p = Pattern.compile("^\\(\\d{3}+\\)\\d{3}+-\\d{4}");
System.out.println(p.matcher("(916)628-4563").matches());
System.out.println(p.matcher("( 916 ) 628-4563").matches());
输出:
<强>真强>
的假强>
输入这样的数据可能很困难,当接收用户输入时,您应该尝试限制他们的选项。例如。询问电话号码的每一部分,并省略(,)和 - 。
由于op增加了新的要求。首先检查所需的(,)和 - &#39; s。
boolean goodNumber = number.find("(")==0&&number.find(")")==4
goodNumber = goodNumber&&number.find("-")==8
goodNumber = goodNumber&&number.length()==13&&
goodNumber = goodNumber&&number.replaceAll("\\d","").length()==3;
找到括号,短划线,然后删除所有数字,看看你是否只留下括号和短划线。
答案 1 :(得分:1)
您可以使用以下内容。如果字符串正确,则会打印valid
,否则会打印invalid
。
public void compare(){
String inputString="(123)848-3452";
if(inputString.matches("^\\([0-9]{3}\\)[0-9]{3}-[0-9]{4}")){
System.out.println("valid");
}else{
System.out.println("invalid");
}
}
答案 2 :(得分:0)
你可以有一个像这样的简单正则表达式
Pattern pattern = Pattern.compile("\\(\\d{3}\\)\\d{3}\\-\\d{4}");
Matcher matcher = pattern.matcher("(071)234-2434");
System.out.println(matcher.matches());