我正在尝试实现类似于拼写检查的行为,但不完全相同。静态的,我只是指某些单词。
所以,让我说我有一个包含10个字符串的数组。
preprocessing
现在,我有一个__all__
用户可以输入内容。用户完成输入后(按下一步等),我想对他们输入的内容进行检查。
String[] originalWords = new String[] {
"Apple", "Banana", "Orange", "Pear", "Grape",
"Pineapple", "Lemon", "Mango", "Cherry", "Peach"
};
我们说EditText
值为String userInput = String.valueOf(editText.getText()).trim();
。这意味着输入的用户只是世界上一个字母userInput
(在数组中)。
我想要实施的支票。无论用户输入什么,如果数组中存在一个SIMILAR(1或2个字母关闭)字,我想得到那个字。我将如何实施?
结果示例:
appla
答案 0 :(得分:0)
我能够弄清楚这一点。它并没有完全按照我想要的方式(1或2个字母关闭),但它完成了工作,因为它给出了相似性的百分比。
我使用了this库。
// array of original words to compare against
String[] originalWords = new String[] {
"Apple", "Banana", "Orange", "Pear", "Grape",
"Pineapple", "Lemon", "Mango", "Cherry", "Peach"
};
// convert String array to ArrayList
ArrayList<String> originals = (ArrayList<String>) Arrays.asList(originalWords);
ExtractedResult extractedResult = FuzzySearch.extractOne("aoole", originals);
if(extractedResult.getScore() >= 75) {
// the word provided (aoole) is at least 75% similar to one of the original words.
// To get the original word:
String result = extractedResult.getString();
}