2

如何检查java中的字符串是否没有字母,只有数字?谢谢你的回答

4

5 回答 5

10

您可以使用正则表达式:yourString.matches("\\d+")

\\d表示一位数字 0-9,+表示一位或多位,组合\\d+等于一位或多位 :)

于 2013-05-31T12:50:00.837 回答
4

使用正则表达式:

string.matches("\\d*");

"\d*"表示“一个数字 (0-9) 零次或多次”。或者,您可以将“*”替换为“+”以表示“一次或多次”。

于 2013-05-31T12:50:57.417 回答
3

org.apache.commons.lang.StringUtils.isNumeric(String) 验证输入字符串中的所有字符都是数字。

它被实现为(如果您不想要第 3 方依赖项):

    int sz = str.length();
    for (int i = 0; i < sz; i++) {
        if (Character.isDigit(str.charAt(i)) == false) {
            return false;
        }
    }
    return true;
于 2013-05-31T13:52:05.443 回答
1

您可以迭代字符串并检查每个字符(如果考虑性能,可能比使用正则表达式更有效)。

boolean isAllDigit(String s) {
    for (int i = 0; i < s.length(); i++) {
      if (s.charAt(i) < '0' || s.charAt(i) > '9') {
        return false;
      }
    }

   return true;
}
于 2013-05-31T12:55:23.443 回答
1

你为什么不把它放在 try/catch 中呢?

    String number="a123.2";
    try {
        Double.parseDouble(number);
        System.out.println("It's a number");
    } catch (Exception e) {
        System.out.println("This is not a number!");
    }
于 2013-05-31T13:36:03.037 回答