当字符串是数字o字母/数字时,它匹配的正确形式是什么,例如,我有这段代码
String regexNum = "\\d*";
String regexVar = "[a-zA-Z0-9]*";
if(valor.matches(regexNum))
{
System.out.println("It's a number");
}
if(valor.matches(regexVar))
{
System.out.println("It's a variable");
}
当我输入" SAL45"时,输出为"它是变量",什么是好的,所以,当我输入&#34时; 45",输出是"它是变量"再次,但我需要输出"它是一个数字",我该如何解决这个错误?
答案 0 :(得分:2)
使用“45”,两个消息都被打印出来。您只需要使用else来只显示一条消息。这是更正后的代码: -
String regexNum = "\\d*";
String regexVar = "[a-zA-Z0-9]*";
if(valor.matches(regexNum))
{
System.out.println("It's a number");
}
else if(valor.matches(regexVar))
{
System.out.println("It's a variable");
}
答案 1 :(得分:2)
你的正则表达式不正确。
以下是数字条件:
以下是变量的条件:
_
或字母[a-zA-Z]或$
_
,数字[0-9],字母[a-zA-Z],$
String regexNum = "\\d+"; String regexVar = "[a-zA-Z_$][a-zA-Z_$0-9]*"; if (valor.matches(regexNum)) { System.out.println("It's a number"); } if (valor.matches(regexVar)) { System.out.println("It's a variable"); }