Java 模式来检查字符串是否包含特定字符

Java 模式来检查字符串是否包含特定字符,java,regex,string,Java,Regex,String,老实说,我对模式了解不多,但我需要一个让我知道myString中是否存在这些字符中的一个或多个 String myString = "thisMayContain/anything@"; String charactersIdontWant = "^àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()"; String myString=“thisMayContain/anything@”; 字符串字符sidontwant=“^Aá-ååèèèè

老实说,我对模式了解不多,但我需要一个让我知道
myString
中是否存在这些字符中的一个或多个

String myString = "thisMayContain/anything@";
String charactersIdontWant = "^àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()";
String myString=“thisMayContain/anything@”;
字符串字符sidontwant=“^Aá-ååèèèèèèèèèèèèèèèèèèèè23;
谢谢。

您可以使用检查字符串中是否有特定字符(如果不在字符串中,则返回-1)

您可以使用获取所有不需要的字符的数组,并对每个字符迭代此数组

可读且简单的代码(虽然不是最有效的)将是:

private静态布尔字符(字符串s){
字符串字符sidontwant=“^Aá-ååèèèèèèèèèèèèèèèèèèèè232;
for(char c:charactersIdontWant.toCharray()){
如果(s.indexOf(c)!=-1)返回false;
}
返回true;
}
公共静态void main(字符串[]args){
String myString=“thisMayContïain/anythis@”;
字符串myString2=“thisMayContain/anything@”;
System.out.println(charsOK(myString));
System.out.println(charsOK(myString2));
}
您可以使用检查字符串中是否有特定字符(如果不在字符串中,则返回-1)

您可以使用获取所有不需要的字符的数组,并对每个字符迭代此数组

可读且简单的代码(虽然不是最有效的)将是:

private静态布尔字符(字符串s){
字符串字符sidontwant=“^Aá-ååèèèèèèèèèèèèèèèèèèèè232;
for(char c:charactersIdontWant.toCharray()){
如果(s.indexOf(c)!=-1)返回false;
}
返回true;
}
公共静态void main(字符串[]args){
String myString=“thisMayContïain/anythis@”;
字符串myString2=“thisMayContain/anything@”;
System.out.println(charsOK(myString));
System.out.println(charsOK(myString2));
}
您可以使用Apache StringUtils中的containsAny():

boolean haveBadCharacters = StringUtils.containsAny(myString, charactersIdontWant);
如果您坚持一种模式,您可以使用:

Pattern badCharactersPattern = Pattern.compile("[àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()^]");
Pattern-badCharactersPattern=Pattern.compile(“[á–ååèèèèèèèèèèèèèèèèèèè;
(注意,
^
移到了末尾,这样它就不会被解释为组否定指示符。)

您可以使用Apache的StringUtils中的containsAny():

boolean haveBadCharacters = StringUtils.containsAny(myString, charactersIdontWant);
如果您坚持一种模式,您可以使用:

Pattern badCharactersPattern = Pattern.compile("[àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()^]");
Pattern-badCharactersPattern=Pattern.compile(“[á–ååèèèèèèèèèèèèèèèèèèè;

(请注意,
^
被移到末尾,这样它就不会被解释为组否定指示器。)

停止重新发明轮子。多年前就解决了这个问题。转到api页面(按照链接)并查找containsAny。

停止重新发明轮子。多年前就解决了这个问题。转到api页面(按照链接)并查找containsAny。

是的,也许这不是最有效的方法,但它非常适合我想要的。我尝试了pvgoran的模式,但由于某些原因不起作用,可能是因为我自己的无知,也可能是出于同样的原因,我无法将StringUtils库导入到我的android项目中。谢谢。是的,也许这不是最有效的方法,但它非常适合我想要的。我尝试了pvgoran的模式,但由于某些原因不起作用,可能是因为我自己的无知,也可能是出于同样的原因,我无法将StringUtils库导入到我的android项目中。谢谢