我必须用一些文字的独特词汇制作词汇。我将文本转换为字符串数组。现在我希望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'
答案 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。