【问题标题】:Accept capitalized string input接受大写字符串输入
【发布时间】:2014-02-25 17:06:42
【问题描述】:

我有一个游戏程序,要求用户猜测给定的打乱单词。

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

【问题讨论】:

    标签: java string swing oop


    【解决方案1】:

    使用equalsIgnoreCase() 而不仅仅是equals()

    【讨论】:

      【解决方案2】:

      由于单词是"global"(小写)并且输入是大写的,你应该使用userGuess.toLowerCase()方法而不是toUpperCase()

      另一种方法是与equalsIgnoreCase() 进行比较。

      【讨论】:

        【解决方案3】:

        这样做

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-10-28
          • 1970-01-01
          • 2017-05-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多