Check non-numeric characters in string

后端 未结 2 1154
有刺的猬
有刺的猬 2020-12-17 01:52

I want to check whether the String contains only numeric characters or it contains alpha-numeric characters too.

I have to implement this check in database transacti

相关标签:
2条回答
  • 2020-12-17 02:12

    You can check this with a regex.

    Suppose that (numeric values only):

    String a = "493284835";
    a.matches("^[0-9]+$"); // returns true
    

    Suppose that (alphanumeric values only):

    String a = "dfdf4932fef84835fea";
    a.matches("^([A-Za-z]|[0-9])+$"); // returns true
    

    As Pangea said in the comments area :

    If the performance are critical, it's preferrable to compile the regex. See below for an example :

    String a = "dfdf4932fef84835fea";
    Pattern pattern = Pattern.compile("^([A-Za-z]|[0-9])+$");
    Matcher matcher = pattern.matcher(a);
    
    if (matcher.find()) {
        // it's ok
    }
    
    0 讨论(0)
  • 2020-12-17 02:23

    Just Googling, I found out this link

     public boolean containsOnlyNumbers(String str) {        
            //It can't contain only numbers if it's null or empty...
            if (str == null || str.length() == 0)
                return false;
    
            for (int i = 0; i < str.length(); i++) {
    
                //If we find a non-digit character we return false.
                if (!Character.isDigit(str.charAt(i)))
                    return false;
            }
    
            return true;
        }
    

    Edit: A RegExp to check numeric should be :

    return yourNumber.matches("-?\\d+(.\\d+)?");
    
    0 讨论(0)
提交回复
热议问题