0

次のような方法があります-:

public void apply(ArrayList<String> tokenStream);

次のような文字列トークンのリストを受け入れます- tokenStream = ("I am good" , "I am bad") 、および tokenStream リスト内のこれらのトークンを個々のトークンに変換して追加し直すことができるようにしたいメソッドの実行が終了した後、tokenStream = ("I" , "am" ,"good" , "I" , "am" , "bad"), どのように使用できますかこの問題を解決するには ListIterator? 基本的に、tokenStream 内の個々の文字列を分割し、ListIterators の set メソッドと remove メソッドを使用してそれらを同じストリーム オブジェクトに追加できるようにしたいのですが、どうすればよいですか?

これは特に私がやろうとしていることです

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());
        }
    }

内部的に配列リストを使用してトークンを格納するトークン ストリーム オブジェクトのトークンから空白を削除しようとしています。このトークンストリーム クラスには、set や remove などの ListIterator クラスのメソッドを補完する一連のメソッドがあります。それを実装することについて?

4

1 に答える 1

1

このタスクの最善の方法は、一時リストを作成し、tokenStream 分割トークンを繰り返して一時リストに追加し、次に一時リストから tokenStream と addAll をクリアすることです。

于 2013-09-24T17:05:32.350 に答える