【发布时间】:2012-11-11 00:44:21
【问题描述】:
我正在尝试编写一个代码,该代码可以检测用户输入中与存储在程序中的字符串数组有关的错误。
假设程序包含“快速棕色狐狸跳过懒狗”
如果用户输入“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) 中的字数。用户输入存储在“输入”中
我的代码缺少什么来检测上述问题?
注意: 如果一个词错了,后面的字符串是对的,则错误为1,否则,将在同一主体上检测到下一个错误。
问候
【问题讨论】:
-
什么时候有 1 个错误?你有什么要求?例如。 'a b' 而不是 'ba',这是 1 个还是 2 个错误? 'abc' 而不是 'cba'; 1 或 3 个错误?
-
你到底想问什么?
-
当用户输入“快速棕色狐狸跳过懒狗”或“快速棕色狐狸跳过懒狗”时出现1个错误。同样,当输入是“The QUik brown fox jmps over the lazy dog”时,也会出现 2 个错误。在 nut shall 在声明错误之前,我的程序会检查单词后面的子字符串,其索引是 find 当前
-
所以每个单词最多有一个错误?
-
是的,但错误单词后的其余输入字符串应与内置字符串匹配。