如何从字符串数组创建词汇表

时间:2015-12-08 19:51:46

标签: java arrays string list vocabulary

我必须用一些文字的独特词汇制作词汇。我将文本转换为字符串数组。现在我希望Array列表只包含唯一的单词。所以第一步,将第一个字符串数组转换为List<Strings>(我猜?),其中所有双字都被过滤掉了。这是我的第一步,如何执行此操作,并使用List<String>或其他String[]

第二,下一个String [] I&#39;读入&#39;应该更新词汇List<String>,但只能添加文本中的新词。

它看起来像是:

public List<String> makeVocabulary(String[] tokens){
     List<String> vocabulay = new ArrayList<>;
     //add unique words from 'tokens' to vocabulary
     return vocabulary;

}

TL; DR:如何只使用String[]&#39;中的唯一字词,将一大堆List<String>转换为一个String[] S'

3 个答案:

答案 0 :(得分:1)

审核完代码后,每次运行此命令时,您似乎都会清除词汇表,因此只能执行一次。如果您想使其更加模块化,请执行以下操作:

public class yourClass
{
    private List<String> vocabulary = new ArrayList<String>();

    public List<String> makeVocabulary(String[] tokens)
    {
        for( int i = 0; i < tokens.length; i++ )
            if( !vocabulary.contains( tokens[i] ) )
                vocabulary.add(tokens[i]);
        return vocabulary;
    }
}

答案 1 :(得分:1)

要确定唯一令牌,请使用Set实施...

public List<String> makeVocabulary(String[] tokens){
 Set<String> uniqueTokens = new HashSet<String>();
 for(String token : tokens) {
    uniqueTokens.add(token);
 }
 List<String> vocabulay = new ArrayList<String>(uniqueTokens);
 return vocabulary;

}

答案 2 :(得分:1)

实现目标的一种方法是使用Set类而不是字符串List。你可以调查一下,例如比如下面的代码。

public List<String> makeVocabulary(String[] tokens){
 Set<String> temp = new HashSet<>;
 //add unique words from 'tokens' to temp
 List<String> vocabulary = new ArrayList<>;
 vocabulary.addAll(temp);
 return vocabulary;
}

如果您可以使用Set作为makeVocabulary的返回类型,则可以返回temp。