首页 > 解决方案 > 逐个字符比较字符串和文本

问题描述

我正在制作一个打字游戏。当用户输入一个键时,程序应该将它与存储的字符串/数组进行比较。如果它与该索引处的字符匹配,则分数变量应递增。

我试图将输入的文本存储在一个字符串中,然后在将其分解为字符后进行比较。

         text=new JTextField(40);
         String sentence="the quick brown fox jumps over the lazy dog";
         String store=text.getText();
         for (int i = 0; i < store.length(); i++) {
             if(store[i]==sentence.charAt(i)) {        //error
                 score++;
             }
         }

如果输入的键与字符匹配,则增加“分数”,否则减少。

标签: javaarraysstringuser-interface

解决方案


你的store变量也是一个字符串而不是一个数组,所以你必须使用.charAt()

for (int i = 0; i < Math.min(store.length(), sentence.length()); i++) {
    if(store.charAt(i) == sentence.charAt(i)) {
        score++;
    } else {
        score--;
    }
}

您还应该使用Math.min(store.length(), sentence.length())来防止IndexOutOfBoundsException.


推荐阅读