我有如下方法-

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

10-07 20:31