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 的SplitterString.split。它将允许修剪和省略空字符串。

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

它采用 :: 和 ::: 相同

不,您的分隔符::在此字符串部分中出现两次,:::这就是您的结果的解释。

你应该使用split("::")方法。

于 2012-10-25T10:55:34.400 回答