java - 检测字符串输入中的单词错误

标签 java string swing

我正在尝试编写一个代码来检测用户输入中与程序中存储的字符串数组有关的错误。

假设程序包含“敏捷的棕色狐狸跳过懒惰的狗”

如果用户输入“The quick brown is name over Jumps the lazy”

程序告诉用户您犯了 5 个错误。但是对于上述用户输入,我的代码无法正常工作。我的代码缺少什么来检测此类错误。这是代码:

public void checkTextCompleted()
{
    String input= text.getText();
    int temp=array[0],mistakes=0;

    if(input.length()==data.length()) {
        text.setEditable(false);
        text.setFocusable(false);

        for(int j=0;j<dataWords;j++) {
            int x = input.indexOf(data.substring(array[j]-temp, array[j]-1));

            System.out.println(x);
            if(x != -1) {
                String subs = input.substring(x, input.length());

                if(data.contains(subs)) {
                    break;
                } else {
                    mistakes++;
                    if(j!=0)
                        temp=array[j-1];
                    else
                        temp=array[j];
                }
            }
            else
                mistakes++;
        }
        JOptionPane.showMessageDialog(null,"You have made "+mistakes+" mistakes" , "Typing Test Completed", JOptionPane.OK_OPTION);
    }
}

array[] 包含程序内置 String(data) 中检测到空格的位置,dataWords 包含程序内置 String(data) 中的单词数。用户输入存储在“input”中

我的代码缺少什么来检测上述问题?

注意: 如果一个词错了,后面的字符串是正确的,错误将是另外一个,下一个错误将在相同的主体上被检测到。

enter image description here

问候

最佳答案

你不能用这个简单的逻辑来压缩你的代码吗?

String[] expectedSentenceA = "The quick brown fox jumps over the lazy dog".split(" ");
String[] inputStringA = inputString.split(" ");
int diff=  expectedSentenceA.length-inputStringA.length;
if(diff>0) {
    System.out.println("You have missed " + diff + " word(s)..!!!");
} else if (diff < 0) {
    System.out.println("Found " + diff + " excess word(s)..!!!");
}else {
   ArrayList<String> mistakeWords= new ArrayList();
   for(int i=0;i<expectedSentenceA.length;i++) {
    if(!expectedSentenceA[i].equals(inputStringA[i])){
        mistakeWords.add(inputStringA[i]);
    }
   }
   JOptionPane.showMessageDialog(null,"Total Mistakes ["+mistakeWords.size()+"] are " + mistakeWords);
}

关于java - 检测字符串输入中的单词错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515736/

相关文章:

string - 如何连接不带空格?

java - 尝试将 JCheckBox 放入 GUI 中

java - 在 JFrame.invalidate 中调用 pack() 是一个坏主意吗?

java - 未能延迟初始化角色 [] 的集合,无法初始化代理 - 无 session

java - 如何以编程方式注册 AbstractMongoEventListener?

java - 您可以禁用 JFace 向导中的后退按钮吗?

javascript - 输入字段在 Controller 端以不同的方式保存(angularjs)

string - 给定两个字符串,找到最长的公共(public)字符包

java - Apple Java 更新 1.6.0_51 后 Swing 应用程序卡住了

java - 添加到 JPanel 的项目未显示