如何检查字符串中的特殊字符?我正在使用正则表达式检查空格,但是当我输入特殊字符时,它会将它们视为空格。以下是我的代码
private boolean emptySpacecheck(String msg){
return msg.matches(".*\\w.*");
}
如何检查特殊字符?
答案 0 :(得分:5)
您可以使用模式匹配器检查特殊字符,您可以查看以下示例:
Pattern regex = Pattern.compile("[$&+,:;=\\\\?@#|/'<>.^*()%!-]");
if (regex.matcher(your_string).find()) {
Log.d("TTT, "SPECIAL CHARS FOUND");
return;
}
希望这有助于您......如果您需要任何帮助,可以提出
答案 1 :(得分:1)
...当我输入特殊字符时,它会将它们视为空格。
这意味着您只想检查字符串是否包含空格。
您不需要正则表达式来检查空间。您只需拨打String#contains
方法即可。
private boolean emptySpacecheck(String msg){
return msg != null && msg.contains(" ");
}
答案 2 :(得分:1)
您可以使用以下RegExp:
private boolean emptySpacecheck(String msg){
return msg.matches(".*\\s+.*");
}
\s
与以下字符匹配:[ \t\n\x0B\f\r]
答案 3 :(得分:1)
一种简单的方法是检查字符串是否包含任何非字母数字 字符。
尝试,
StringChecker.java
public class StringChecker {
public static void main(String[] args) {
String str = "abc$def^ghi#jkl";
Pattern p = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(str);
System.out.println(str);
int count = 0;
while (m.find()) {
count = count+1;
System.out.println("position " + m.start() + ": " + str.charAt(m.start()));
}
System.out.println("There are " + count + " special characters");
}
}
您的结果如下所示:
$ java SpecialChars
abc$def^ghi#jkl
position 3: $
position 7: ^
position 11: #
There are 3 special characters
您可以根据需要将自己的模式作为参数传递给编译方法 检查特殊字符:
Pattern.compile("[$&+,:;=\\\\?@#|/'<>.^*()%!-]");