2012-10-25 72 views
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 

它正在:::::相同。有什么方法可以避免这种情况?

+0

StringTokenizer已弃用,请避免它 – Bozho

回答

6

你可以只用String#分裂这样的:

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

编辑:

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

OUTPUT:

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

尝试番石榴的Splitter如果您需要额外的功能String.split。它将允许修剪和省略空弦。

String myInput = "..."; 
Iterable<String> parts = Splitter.on("::").split(myInput); 
0

它正在::和:::作为同一

不,你的分隔符::在此字符串部分:::被发现两次,这是你的结果的解释。

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