从android字典中获取随机单词

时间:2013-08-28 16:24:57

标签: android dictionary

我有点学习android ...我想知道是否有办法从android用户词典类中随机访问3个字母单词或4个字母单词或某些特定类型的单词?考虑到事实上,android有一个自动正确的功能,我猜它也有一个字典...因此我该如何使用...我在哪里可以找到一个合适的教程?

我不知道代码...周围搜索了很多...请帮我解释一下代码以及可能的解释:)

1 个答案:

答案 0 :(得分:1)

我不知道如何访问android字典,但你可以在应用程序的资源文件夹中将“自定义”字典作为txt文件。这个link有几个单词列表,从大约20,000个单词到200,000个单词。您可以在Google上找到更多列表。

然后,您可以读取txt文件并将其添加到数组列表中(如果它与字长相匹配)。然后可以从字典列表中选择随机单词。以下代码将创建字典并从中选择一个随机字。

private ArrayList<String> dictionary;
private int wordLength; //Set elsewhere

private void createDictionary(){
    dictionary = new ArrayList<String>();

    BufferedReader dict = null; //Holds the dictionary file
    AssetManager am = this.getAssets();

    try {
        //dictionary.txt should be in the assets folder.
        dict = new BufferedReader(new InputStreamReader(am.open("dictionary.txt")));

        String word;
        while((word = dict.readLine()) != null){
            if(word.length() == wordLength){
                dictionary.add(word);
            }
        }

     } catch (FileNotFoundException e){
         e.printStackTrace();
     } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }

    try {
        dict.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

//Precondition: the dictionary has been created.
private String getRandomWord(){
    return dictionaryList.get((int)(Math.random() * dictionaryList.size()));
}