静态拼写检查行为

时间:2017-09-01 03:08:57

标签: android spelling

我正在尝试实现类似于拼写检查的行为,但不完全相同。静态的,我只是指某些单词。

所以,让我说我有一个包含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

1 个答案:

答案 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();
}