Java如何判断输入的是字符还是数字?

2024-10-30 14:55:31
推荐回答(1个)
回答1:

  1. 用JAVA自带的函数:

    public static boolean isNumeric(String str)

    for (int i = 0; i <返枣 str.length(); i++)

    System.out.println(str.charAt(i));

    if (!Character.isDigit(str.charAt(i)))

    return false;

  2. 用正则表达式:

    首先要import java.util.regex.Pattern 和 java.util.regex.Matcher

    public boolean isNumeric(String str)

    Pattern pattern = Pattern.compile("[0-9]*");

    Matcher isNum = pattern.matcher(str);

    if( !isNum.matches() )

    return false;

  3. 使用org.apache.commons.lang:

    org.apache.commons.lang.StringUtils;

    boolean isNunicodeDigits=StringUtils.isNumeric("敏世汪aaa123456789");

    http://jakarta.apache.org/commons/lang/api-release/index.html下面的解释:

    isNumeric

    public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.

    null will return false. An empty String ("") will return true.

    StringUtils.isNumeric(null)   = false

    StringUtils.isNumeric("")     = true

    StringUtils.isNumeric("  桥仔")   = false

    StringUtils.isNumeric("123")  = true

    StringUtils.isNumeric("12 3") = false

    StringUtils.isNumeric("ab2c") = false

    StringUtils.isNumeric("12-3") = false

    StringUtils.isNumeric("12.3") = false

    Parameters:

    str - the String to check, may be null

    Returns:

    true if only contains digits, and is non-null