Java 如何检查字符数组中的每个字符?
如何根据字符串检查字符数组中的每个字符?例如,我想检查以下字符:Java 如何检查字符数组中的每个字符?,java,string,boolean,Java,String,Boolean,如何根据字符串检查字符数组中的每个字符?例如,我想检查以下字符:!、@、#、$、%、^、&、*,(,),+对字符串af!a$co。但是没有正则表达式 这有意义吗 public boolean IllSymbols(String newString) { char [] data = {'!', '#', '$', '%', '^', '&', '*', '(', ')' }; String str = new String(data); for (int i=0; i&
!、@、#、$、%、^、&、*,(,),+
对字符串af!a$co
。但是没有正则表达式
这有意义吗
public boolean IllSymbols(String newString)
{
char [] data = {'!', '#', '$', '%', '^', '&', '*', '(', ')' };
String str = new String(data);
for (int i=0; i<str.length(); i++)
{
for (int j=0; j<local.length(); j++)
{
if (str.charAt(i)==local.charAt(j))
{
return true;
}
}
}
return false;
}
devil将字符串返回为“true”,这意味着它是合法字符串。也许我做错了什么
public boolean hasIllegalCharacters(String newString) {
boolean hasIllegalChars = false;
char[] illegalChars = {'!', '#', '$', '%', '^', '&', '*', '(', ')' };
for (int i = 0; i < newString.length; i++) {
for (int j = 0; j < illegalChars.length; j++) {
if (newString.charAt(i) == illgalChars[j]) {
hasIllegalChars = true;
}
}
}
return hasIllegalChars;
}
…但在这种情况下,我建议将该方法重命名为“IsAllegalCharacters”或类似名称。public boolean illSymbols(String newString){
public boolean illSymbols(String newString) {
char [] data = {'!', '#', '$', '%', '^', '&', '*', '(', ')' };
for(int i=0; i<data.length; i++) {
if(newString.indexOf(data[i]) > -1) { // if the string contains the character
return false; // return false
}
}
return true;
}
char[]data={'!'、'#'、'$'、'%'、'^'、'&'、'*'、'('、')'};
对于(inti=0;i-1){//如果字符串包含字符
return false;//return false
}
}
返回true;
}
您是否正在尝试检查某些字符串是否包含任何字符
,@
,$
,%
,^
,&
,*
,(
,)
,
,在这种情况下它是非法的?为了简单易用和易于理解,我建议您使用的类
我更喜欢使用.contains()
。。。。
for(int i=0;i
您的最后一段代码相当笨拙。它可以简化为return!IllSymbols(newString);
复杂的布尔逻辑,嗯?:)您的代码看不到传入的字符串。它将str与local进行比较,而不是与newString进行比较。或者,如果您希望在发现非法字符后立即返回,而不是将break放在返回中。
hasIllegalCharacters = true;
...nested for loops...
if (newString.charAt(i) != illegalChars[j]) {
hasIllegalChars = false;
// optional "break;" or "return false;" statement here
}
...
return hasIllegalChars;
public boolean illSymbols(String newString) {
char [] data = {'!', '#', '$', '%', '^', '&', '*', '(', ')' };
for(int i=0; i<data.length; i++) {
if(newString.indexOf(data[i]) > -1) { // if the string contains the character
return false; // return false
}
}
return true;
}
private static final CharMatcher ILLEGAL_SYMBOLS =
CharMatcher.anyOf("!@#$%^&*()_+");
public boolean isLegal(String string) {
return ILLEGAL_SYMBOLS.matchesNoneOf(string);
}
....
for(int i=0; i < check.length; i++){
for(int j=0; j < illegalChar.length; i++){
if(check[i].contains(illegalChar[j])
return false;
}
}
return true;
....