gpt4 book ai didi

java - 多个||一个 if 语句中的语句

转载 作者:行者123 更新时间:2023-12-01 08:02:59 26 4
gpt4 key购买 nike

我试图让我的程序检查玩家输入的名称,看看它是否使用了任何无效字符。在我看来如何让它发挥作用似乎有意义,但在实际环境中似乎不起作用。当我运行它时,如果我使用无效字符,那么它将继续执行程序的下一部分。关于如何修复它有什么想法吗?

这是我的相关代码块:

if (!(nameInput.getText().equals(""))) {
boolean allow = true;
String check = nameInput.getText();
for (int i = 0;i>check.length();i++) {
if (check.charAt(i) == '`' || check.charAt(i) == '~' ||
check.charAt(i) == '!' || check.charAt(i) == '@' ||
check.charAt(i) == '#' || check.charAt(i) == '$' ||
check.charAt(i) == '%' || check.charAt(i) == '^' ||
check.charAt(i) == '&' || check.charAt(i) == '*' ||
check.charAt(i) == '(' || check.charAt(i) == ')' ||
check.charAt(i) == '_' || check.charAt(i) == '+' ||
check.charAt(i) == '=' || check.charAt(i) == '[' ||
check.charAt(i) == ']' || check.charAt(i) == '{' ||
check.charAt(i) == '}' || check.charAt(i) == ';' ||
check.charAt(i) == '\''|| check.charAt(i) == ':' ||
check.charAt(i) == '"' || check.charAt(i) == '<' ||
check.charAt(i) == '>' || check.charAt(i) == '?' ||
check.charAt(i) == ',' || check.charAt(i) == '.' ||
check.charAt(i) == '/' || check.charAt(i) == '\\'||
check.charAt(i) == '|' || check.charAt(i) == '1' ||
check.charAt(i) == '2' || check.charAt(i) == '3' ||
check.charAt(i) == '4' || check.charAt(i) == '5' ||
check.charAt(i) == '6' || check.charAt(i) == '7' ||
check.charAt(i) == '8' || check.charAt(i) == '9' ||
check.charAt(i) == '0') {
allow = false;
}
}
if (allow == true) {
player = new Player(check);
window.refresh();
mainMenu();
} else {
JOptionPane.showMessageDialog(window, "Invalid Name(Uses invalid Characters","Invalid!", JOptionPane.OK_OPTION);
}
} else {
JOptionPane.showMessageDialog(window, "Can Not Leave Name Blank!", "Missing Name!", JOptionPane.OK_OPTION);
window.refresh();
createPlayer();
}
}

最佳答案

for(int i = 0;i>check.length();i++)

您的for永远不会进入循环,因为我不相信 String的长度可以是负数...

您是否想使用 <相反?

此外,还有比巨大的字符检查链更好的方法来检查有效名称。

一种方法是使用正则表达式;查看 Java 的 Pattern类和谷歌学习正则表达式。这样你就可以将你的循环和 if block 减少到这个(我想;我只是接受了字母字符,并基于对那个怪物的快速浏览而拒绝了其他所有内容):

allow = String.matches("[a-zA-Z]{1,}");

关于java - 多个||一个 if 语句中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716231/

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