2

私はこのコードを使用しています:

StringTokenizer tokenizer=new StringTokenizer(line, "::");

次の文字列を分割するには:

hi my name is visghal:: what is yor name name:: being thw simple my::: what is yor name name.

::次に、区切り文字として使用して文字列を分割します。正常に動作しています。しかし、それも:::考慮に入れています。

言い換えれば、私は欲しいです:

hi my name is visghal
what is yor name name
being thw simple my
: what is yor name name

代わりに、それは私に次のことを与えています:

being thw simple my 
what is yor name name   
hi my name is visghal   

それは同じように取っ::ています。:::これを回避する方法はありますか?

4

3 に答える 3

6

次のようにString#splitを使用できます。

String[] arr = str.split("::");

編集:

String[] arr = str.split("::\\s*"); // for stripping spaces after ::

出力:

hi my name is visghal
what is yor name name
being thw simple my
: what is yor name name
于 2012-10-25T10:52:37.910 に答える
2

に追加機能が必要な場合は、Guava'sSplitterをお試しくださいString.split。空の文字列をトリミングおよび省略できます。

 String myInput = "...";
 Iterable<String> parts = Splitter.on("::").split(myInput);
于 2012-10-25T10:52:41.350 に答える
0

:::と:::を同じように取っています

いいえ、あなたのデリメータ::はこの文字列部分で2回見つかりました:::。これが、結果の説明です。

メソッドを使用する必要がありますsplit("::")

于 2012-10-25T10:55:34.400 に答える