接受大写字符串输入

时间:2014-02-02 03:16:24

标签: java string swing oop

我有一个游戏程序,其中要求用户猜出给定的加扰字。

例如: 乱词: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();
    }

3 个答案:

答案 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());
}