我正在开发一款英语词汇学习应用。部分练习是书面测验,用户需要将法语单词翻译成英语或者反过来。
为了让检查更加精确,而不仅仅是“1”或“0”(TypedWord == expectedWord),我已经开始使用字符串相似性进行工作,这对于拼写错误等问题非常有效。
我也使用了contains函数,例如,如果用户在期望单词前面添加了一个冠词,它不会认为是错误的。(例如:预期单词为“Ecole(学校)”,但用户写成“A school”)。
所以我使用诸如“if (typedWord.contains(word)==true) then...”之类的代码行来检查,它对于冠词问题很有效。但它引起了另一个问题:
例如:A bough --> 预期的法语单词是“branche”。如果用户键入“une branche”,它会被视为正确,这很好。但是,如果用户键入“débrancher”(拔掉插头),它也会被视为正确,因为“branche”是“débrancher”的一部分......
有什么办法可以避免这种情况发生吗?还有其他方法可以解决这个问题吗?
我阅读了三个提议的答案,它们非常有趣。问题是有些单词是复合词......例如:厨房用具、园艺工具等......因此,我认为“空格”功能可能会有问题......
为了让检查更加精确,而不仅仅是“1”或“0”(TypedWord == expectedWord),我已经开始使用字符串相似性进行工作,这对于拼写错误等问题非常有效。
我也使用了contains函数,例如,如果用户在期望单词前面添加了一个冠词,它不会认为是错误的。(例如:预期单词为“Ecole(学校)”,但用户写成“A school”)。
所以我使用诸如“if (typedWord.contains(word)==true) then...”之类的代码行来检查,它对于冠词问题很有效。但它引起了另一个问题:
例如:A bough --> 预期的法语单词是“branche”。如果用户键入“une branche”,它会被视为正确,这很好。但是,如果用户键入“débrancher”(拔掉插头),它也会被视为正确,因为“branche”是“débrancher”的一部分......
有什么办法可以避免这种情况发生吗?还有其他方法可以解决这个问题吗?
我阅读了三个提议的答案,它们非常有趣。问题是有些单词是复合词......例如:厨房用具、园艺工具等......因此,我认为“空格”功能可能会有问题......