如何检查字符串是否包含特殊字符?

时间:2019-01-10 08:26:31

标签: java

我要检查是否某些字符串包含UNICODE字符集中的任何特殊符号。以前,我使用正则表达式charset对其进行了编码,但现在chars的列表已扩展,并且现在无法对其进行硬编码。如何设置此检查?

4 个答案:

答案 0 :(得分:0)

有使用正则表达式的选项。

如果它与正则表达式[a-zA-Z0-9 ]相匹配,则其中没有特殊字符。

Pattern p = Pattern.compile("[a-zA-Z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("I am a string");
boolean containsSpecialChar = m.find();
if(containsSpecialChar){
// Do what you need.
}

希望这会对您有所帮助。

答案 1 :(得分:0)

您可以遍历字符串,对于每个字符调用,然后

public static boolean checkingUnicode(String text){

        char[] arr = text.toCharArray();

        for(int i=0; i<arr.length; i++){
            char c = arr[i];
            if(Character.UnicodeBlock.of(c) != Character.UnicodeBlock.BASIC_LATIN){
                return true;
            }
        }
        return false;
    }

希望它能起作用

答案 2 :(得分:-1)

我认为可以实现。您需要制作一个可能的特殊字符列表,并在loop中应用条件,以检查列表中的每个字符是否包含该特殊字符。

答案 3 :(得分:-1)

使用称为Regex的方法。

                String s= e2.getText().toString();
                Pattern pattern = Pattern.compile("\\d{11}"); //CHANGE PATTERN CONDITIONS ACCORDINGLY
                Matcher matcher = pattern.matcher(s); //CHECKS THE PATTERN WITH THE INPUT STRING

                if (matcher.matches()) {
                   // YOUR METHODS 
                }
                else
                {
                    //PRINT AN ERROR TEXT
                }