プログラムに格納されている文字列配列に対して、ユーザー入力の誤りを検出できるコードを作成しようとしています。
プログラムに「怠惰な犬を飛び越える速い茶色のキツネ」が含まれているとしましょう
ユーザーが「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[] には、Program builtin String(data) 内のスペースが検出された位置が含まれ、dataWords には、プログラム組み込み String(data) 内の単語数が含まれます。ユーザー入力は「input」に格納されます
上記の問題を検出するために私のコードに欠けているものは何ですか?
注: 1 つの単語が間違っていて、その後の残りの文字列が正しい場合、間違いは 1 になり、それ以外の場合、次の間違いは同じプリンシパルで検出されます。
よろしく