gpt4 book ai didi

java - 如何检查字符数组中的每个字符?

转载 作者:行者123 更新时间:2023-11-30 06:33:34 25 4
gpt4 key购买 nike

如何根据字符串检查字符数组中的每个字符?例如,我想检查这些字符:!,@,#,$,%,^,&,*,(,),_,+ 与字符串 af!a$协。不过,没有正则表达式。

这有意义吗?

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;
}

但是当我在我的主要方法中检查单词 af!a$co

if (IllSymbols(newString)==true)
{
return false; // false = text is illegal
}
else
{
return true; // true = text is legal
}

魔鬼将字符串返回为“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;
}

这里的想法是,您首先假设它将为假,并且只有在您发现非法字符时才将其设置为真。

如果您想在找到第一个非法字符后立即返回,那么就在 hasIllegalChars = true; 行之后你可以添加 break;声明。

看看相反的情况,如果你想返回 true only if newString包含 nothing but 非法字符,那么你可以反过来,假设它是真的并初始化 hasIllegalCharstrue , 然后将其设置为 false在嵌套 for 内如果发现任何不是非法字符,则循环,使用此代码(for 循环和方法声明是相同的):

  hasIllegalCharacters = true;

...nested for loops...
if (newString.charAt(i) != illegalChars[j]) {
hasIllegalChars = false;
// optional "break;" or "return false;" statement here
}
...

return hasIllegalChars;

...但在那种情况下,我建议将该方法重命名为“isAllIllegalCharacters”或类似名称。

关于java - 如何检查字符数组中的每个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com