Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查字符数组中的每个字符?_Java_String_Boolean - Fatal编程技术网

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;

....