如何检查字符串是否包含符号?假设我有这个字符串
"SUGAR :::: SUGAR"
我想检查该字符串是否包含=以下符号
":,?,!@#$%^&*()";
我试过这个
Pattern p = Pattern.compile("[?,!,@,$,%,^,&,*,(,)]");
Matcher m = p.matcher("?");
boolean b = m.matches();
System.out.println(b);
但是,如果文本包含多个符号
,该怎么办?答案 0 :(得分:1)
试试这个:
Pattern pat = Pattern.compile("[:?!@#$%^&*()]");
String str = "SUGAR :::: SUGAR";
Matcher m = pat.matcher(str);
if (m.find()) {
System.out.println("string contains pattern");
}
以上将检查字符串的任何部分是否包含至少模式中任何符号的一次出现(无需将它们与,
分开)。
答案 1 :(得分:1)
番石榴可能是?
CharMatcher matcher = CharMatcher.anyOf(":,?,!@#$%^&*()");
boolean result = matcher.matchesAnyOf("SUGAR :: SUGAR");
System.out.println(result);
答案 2 :(得分:0)
只需匹配包含这些字符的集合:[:,?!@#$%^&*()]
如果您想检查符号-
,请将其放置在集合的末尾:[...-]
无需用逗号分隔集合中的元素。
如果你想检查任何非字母数字使用\ W而不是:[\ W_](因为\ W与_不匹配)