如何知道String只包含0到9而不包含其他字符

时间:2015-05-19 13:38:11

标签: java

我是新来的,我的代码有问题。

我有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。

任何线索?

2 个答案:

答案 0 :(得分:7)

strng.contains("[0-9]+")应该是strng.matches("[0-9]+")

这将测试您的strng是否有一个或多个数字。

如果您希望字符串与完全五位数匹配,则必须使用"[0-9]{5}"模式。

答案 1 :(得分:5)

您可以使用正则表达式检查内容的长度:

strng.matches("[0-9]{5}")

对于只包含数字字符的5个字符的字符串,这将返回true