我有一个游戏程序,其中要求用户猜出给定的加扰字。
例如: 乱词:loglab 你的猜测:
这个词是全球性的,每当我输入“GLOBAL”时,它都说这个词是不正确的。我试图使用toUpperCase但它没有用。我的程序如何能够接受输入的字符串,即使它是大写的?以下是我的一些代码。我不会发布它,因为它太长了,但如果你需要更多它只是通知我。关于此事,请帮助我。谢谢。
StaticWordLibrary.java:
public boolean isCorrect(int idx, String userGuess) {
return userGuess.equals(getWord(idx));
}
WordLibrary.java:
public abstract boolean isCorrect(int idx, String userGuess);
Anagrams.java:
private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {
if (wordLibrary.isCorrect(wordIdx, guessedWord.getText())){
JOptionPane.showMessageDialog(null, "Your answer is correct! Guess another word.","", JOptionPane.INFORMATION_MESSAGE);
getRootPane().setDefaultButton(nextTrial);
} else {
JOptionPane.showMessageDialog(null, "Your answer is incorrect! Please try again.","", JOptionPane.ERROR_MESSAGE);
guessedWord.setText("");
}
guessedWord.requestFocusInWindow();
}
答案 0 :(得分:5)
使用equalsIgnoreCase()
代替equals()
答案 1 :(得分:2)
由于单词为"global"
(小写)且输入为大写,因此您应使用方法userGuess.toLowerCase()
而不是toUpperCase()
。
另一种方法是与equalsIgnoreCase()
进行比较。
答案 2 :(得分:2)
这样做
public boolean isCorrect(int idx, String userGuess) {
return userGuess.equalsIgnoreCase(getWord(idx));
}
或
public boolean isCorrect(int idx, String userGuess) {
return userGuess.toUpperCase().equals(getWord(idx).toUpperCase());
}