我正在读取传感器的内存,我想确保返回的字符串是一个有效的字符串,因为它有时会从内存中返回垃圾值。 我想跳过那些垃圾值。 我知道我可以使用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!");
}
但是带有这些特殊字符的字符串[,。/?@:;#!“£$%^& *()_ + = - 〜>< |`]应该是有效的字符串而不是垃圾(喜欢)
提前致谢
答案 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]+", "");