静态拼写检查行为

问题描述 投票:0回答:1

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

所以,假设我有一个包含10个字符串的数组。

String[] originalWords = new String[] {
        "Apple", "Banana", "Orange", "Pear", "Grape",
        "Pineapple", "Lemon", "Mango", "Cherry", "Peach"
};

现在,我有一个用户可以输入内容的EditText。用户完成输入后(按下一步等),我想检查他们输入的内容。

String userInput = String.valueOf(editText.getText()).trim();

让我们说userInput值是appla。这意味着用户输入的只是世界上一个字母Apple(在数组中)。

这是我要实施的检查。无论用户输入什么,如果数组中存在一个SIMILAR(1或2个字母关闭)字,我想得到那个字。我该如何实施呢?

结果示例:

aoole ==> Apple
orenge ==> Orange
Cheery ==> Cherry
android spelling
1个回答
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();
}
© www.soinside.com 2019 - 2024. All rights reserved.