我有如下方法-
public void apply(ArrayList<String> tokenStream);
在其中,我接受如下所示的字符串标记列表-tokenStream =(“我很好”,“我不好”),并且我希望能够将tokenStream列表中的这些标记转换为单个标记并将其重新添加以相同的方式,方法执行结束后,我应该有-tokenStream =(“ I”,“ am”,“ good”,“ I”,“ am”,“ bad”),我该如何使用ListIterator解决了这个问题?基本上,我希望能够使用ListIterators set和remove方法在tokenStream中拆分单个字符串并将其添加回同一流对象,该怎么办?
这就是我要尝试做的
public void apply(tokenstream stream){
if (stream != null) {
ArrayList<String> splittedTokens = new ArrayList<>();
while (stream.hasNext()) {
String token = stream.next();
String[] splitTokens = token.split("\\s+");
for (int i = 0; i < splitTokens.length; ++i)
splittedTokens.add(splitTokens[i]);
}
// set the stream to hold this new formed stream with tokens
stream.set((String[]) splittedTokens.toArray());
}
}
我正在尝试从令牌流对象中的令牌中删除空格,该对象内部使用数组列表来存储令牌,并且此tokenstream类具有一组与ListIterator类的方法互补的方法,例如set和remove,所以我该如何去关于实施?
最佳答案
对于此任务,最好的方法似乎是创建一个临时列表,迭代tokenStream拆分令牌并将其添加到临时列表中,然后从temp中清除tokenStream和addAll