我正在尝试用 Java 创建类似 Typer Shark 的游戏。我在检测用户输入的字符串是否与数组列表中的元素匹配时遇到问题。我尝试这样做:
char key = e.getKeyChar();
ArrayList<String> word = new ArrayList<String>();
word.add("hello");
word.add("red");
word.add("blue");
int counter = 0;
for(String temp:word){
for(int i=0; i<temp.length();i++){
if(key==temp.charAt(i))
counter++;
else
break;
}
if(counter==temp.length())
System.out.println("Correct");
}
我不确定我是否走在正确的道路上。提前致谢!
编辑:我尝试使用文本字段执行此操作,它有效,但玩家必须按 Enter 键,程序才能在数组列表中找到匹配项。我试图找出是否可以在不按 Enter 的情况下匹配键入的单词(只需使用 Java 中的 keyTyped )。谢谢!
最佳答案
您没有为每个单词重置计数器
。将其移至外部 for
循环内部。您还需要记住以前的字符。
还可以考虑使用String.startsWith
。
除了记住以前的字符之外,您还可以记住以前匹配的单词。 java.util.BitSet
非常适合此目的。
重新编辑:假设您使用的是 Swing(或 AWT),如果您将 DocumentListener
添加到 JTextField
的 Document
,然后在 insertUpdate
和 removeUpdate
上运行代码(changedUpdate
表示其他内容),那么您可以忽略 ActionListener
。
关于java - 检测用户输入的单词是否与Java中数组列表中的字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34094015/