【发布时间】:2022-01-24 02:02:38
【问题描述】:
我有一个问题,我想查看输入用户输入的是否部分匹配,或者只要多数与答案匹配,如果匹配,那么它应该打印出“几乎正确”。 例如,假设答案是 Football,但用户输入的是 Footbol。然后它应该打印出几乎正确。
这是我尝试过的。但问题是它只是检查整个单词是否包含在 ENG 中,否则即使缺少一个 Char 也不起作用。
if (Answer.equalsIgnoreCase(ENG)){
r = "Correct";
}
else if (Answer.toLowerCase().contains(ENG.toLowerCase().)){
r = "Almost correct";
}
else {
r = "Wrong";
}
System.out.println(r)
【问题讨论】:
-
看起来你需要一些模糊匹配
-
将
ENG拆分成单词并计算包含多少个单词,也许? -
您好,欢迎您!请先 define “匹配超过 60% 的答案” ... 有多少百分比匹配“eng”和“gne”(例如)? :) (100?0?50??:)
-
抱歉我写的有点不对,ENG只有一个字。我的意思是说如果用户输入缺少一个 CHAR,那么它就无法识别它。像上面的例子一样,当它应该说几乎正确时,写Footbol会打印出“错误”。但是如果用户输入 Footballs,那么它会显示几乎正确,因为它找到了 Football 这个词,而 S 只是附加的。如果你明白我的意思。只要大部分 CHAR 与 ENG 中的单词匹配,它就不必是 60%。
-
soundex 会满足您的需求吗? stackoverflow.com/questions/43275987/…