2012-11-19 38 views
3
public static void main(String[] args){ 
    String s=new String("f;sjdkfd:fdsfdf;df:FD::D:::F:RE:FRER:F:ER:FR:F:RF:GR:G:RG: :P"); 
    String[] ss = s.split(":"); 

    for(String token : ss){ 
     System.out.println(token); 
    } 
} 

使用此代码,我可以得到“:”之间的令牌。但我想用“:”和“;”分割文本与此同时。那可能吗?如何分割带有多个分隔符的文本?

+0

为此,您可以使用[共享郎](http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html#split%28java.lang.String,%20java.lang.String%29)。 – Isaac

回答

2

你可以使用字符类来代替:

String[] ss = s.split("[:;]"); 
3

您可以使用正则表达式:

String[] ss = s.split("[:;]") 

因此,该代码将是:

public static void main(String[] args) { 
    String s = new String("f;sjdkfd:fdsfdf;df:FD::D:::F:RE:FRER:F:ER:FR:F:RF:GR:G:RG: :P"); 
    String[] ss = s.split("[:;]"); 

    for (String token : ss) { 
     System.out.println(token); 
    } 
} 
1

使用Commons Lang ,特别是[这个StrTokenizer构造函数](http:// c ommons.apache.org/lang/api-3.1/org/apache/commons/lang3/text/StrTokenizer.html#StrTokenizer(的char [],字符)):

StrTokenizer tokenizer = new StrTokenizer("f;sjdkfd:fdsfdf;df:FD::D:::F:RE:FRER:F:ER:FR:F:RF:GR:G:RG: :P".toCharArray(), ":"); 
tokenizer.next(); // will give you "f;sjdkfd", followed by fdsfdf;df, etc. with every call to .next() 
相关问题