我是新来的,我的代码有问题。
我有5个字符的字符串,这就是我提出的
public static boolean isNumber(String strng) {
return (strng.contains("[0-9]+"));
}
public static void main(String[] args) {
String strng;
Scanner strong = new Scanner(System.in);
while (isNumber(dato) == true && dato.length() != 5){
System.out.println("Isnt a correct id number");
strng = strong.nextLine();
}
但有了这个,我可以引入一个点或一个分号,我尝试使用[a-zA-Z]+
和boolean
处于假设但不起作用我只搜索数字从0到9。
任何线索?
答案 0 :(得分:7)
strng.contains("[0-9]+")
应该是strng.matches("[0-9]+")
这将测试您的strng
是否有一个或多个数字。
如果您希望字符串与完全五位数匹配,则必须使用"[0-9]{5}"
模式。
答案 1 :(得分:5)
您可以使用正则表达式检查内容和的长度:
strng.matches("[0-9]{5}")
对于只包含数字字符的5个字符的字符串,这将返回true
。