java:检查除少数特殊字符的字符串

时间:2016-02-25 15:58:09

标签: java string

我正在读取传感器的内存,我想确保返回的字符串是一个有效的字符串,因为它有时会从内存中返回垃圾值。 我想跳过那些垃圾值。 我知道我可以使用Patterns

检查带有特殊字符的字符串
Pattern pat = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher("My Test String");
if(mat.find())
{
    System.out.println("String contains special character!");
}

但是带有这些特殊字符的字符串[,。/?@:;#!“£$%^& *()_ + = - 〜>< |`]应该是有效的字符串而不是垃圾(喜欢)

提前致谢

2 个答案:

答案 0 :(得分:2)

这很简单,只需在模式中添加这些特殊字符即可。

Pattern pat = Pattern.compile("[^a-z0-9 {},./?@:;#!£$%^&*()_+=-~><|`]", Pattern.CASE_INSENSITIVE);
        Matcher mat = pat.matcher("My Test String");
        if(mat.find())
        {
            System.out.println("String contains special character!");
        }

除了这些之外,它不会接受任何其他角色。

答案 1 :(得分:2)

你可以剥离&#34;无效&#34;像这样的人物。

text = text.replaceAll("[^\u0020-\u007e]+", "");