我有一个可变长度的字符串,我只想检测这个字符串是否包含几个字符。例如:
"sadsdd$sss^dee~"
我想检测此字符串是否包含以下任何内容:$
^
~
. 我怎样才能使用 Java 做到这一点string.matches
?
"sadsdd$sss^dee~".matches("[^+$+~+]");
为此使用模式和匹配器:
Pattern pattern = Pattern.compile("[$~^]");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
// contains special characters
} else {
// doesn't contain special characters
}
如果你真的必须使用matches
,那么试试这种方式
myString.matches(".*[$^~].*");
matches
检查正则表达式是否可以完全匹配字符串,因此除了您感兴趣的部分之外,您还需要让它匹配它之前和之后的部分,这.*
应该处理。
如何检测一个字符串是否包含另一个字符串中的多个字符之一:
如果您想要一个快速的解决方案:
public static void main(String[] args) {
System.out.println(containsChars("sadsdd$sss^dee~", "$^~"));
}
public static boolean containsChars(String str, String chars) {
for (int i = 0; i < chars.length(); i++) {
char c = chars.charAt(i);
for (int j = 0; j < str.length(); j++) {
if (c == str.charAt(j)) {
return true;
}
}
}
return false;
}
当然不像正则表达式那么小或优雅,但它很快。