Search code examples
javastringcharacteralphanumeric

How to determine if a String has non-alphanumeric characters?


I need a method that can tell me if a String has non alphanumeric characters.

For example if the String is "abcdef?" or "abcdefà", the method must return true.


Solution

  • Using Apache Commons Lang:

    !StringUtils.isAlphanumeric(String)
    

    Alternativly iterate over String's characters and check with:

    !Character.isLetterOrDigit(char)
    

    You've still one problem left: Your example string "abcdefà" is alphanumeric, since à is a letter. But I think you want it to be considered non-alphanumeric, right?!

    So you may want to use regular expression instead:

    String s = "abcdefà";
    Pattern p = Pattern.compile("[^a-zA-Z0-9]");
    boolean hasSpecialChar = p.matcher(s).find();