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

このコードを使用すると、「:」の間のトークンを取得できます。しかし、「:」と「;」の両方でテキストを分割したい 同時に。それは可能ですか?

4

3 に答える 3

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);
    }
}
于 2012-11-19T00:26:54.133 に答える
1

Commons Langを使用します。具体的には、[このStrTokenizerコンストラクター](http://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/text/StrTokenizer.html#StrTokenizer(char[]、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()
于 2012-11-19T00:47:50.833 に答える