0

私が文字列を持っている場合、例えば

 s = "david,marko,rita,0 megan,0 vivian,law";

この文字列をに分割する必要があります

david
marko
rita
megan
vivian
law

私は

String arr[] = s.split("[,\\s]");

しかし、機能しませんでした。助言がありますか?

4

5 に答える 5

3

次の式を使用できます。

String arr[] = s.split(",0?\\s*");

または多分:

String arr[] = s.split("[,0\\s]+");

どちらが必要かは、例からはわかりません。

于 2013-03-14T08:02:54.567 に答える
0

あなたの正規表現は: "(、0 |、)"

だからこのコードを試してみてください:

public static void main(String[] args){
        String s = "david,marko,rita,0 megan,0 vivian,law";
        String[] ss = s.split("(,0 |,)");
        for (int i = 0; i < ss.length; i++) {
            String string = ss[i];
            System.out.println(string);
        }
    }
于 2013-03-14T08:05:33.903 に答える
0
String[] arr = s.split(",(0\\s+)*");

正規表現はコンマで分割され、オプションで 0 と 1 つ以上のスペースが続きます。

      public static void main(String[] args) {
         String s = "da0vid,marko,rita,0 megan,0 vivian,law";
         String[] arr = s.split(",(0\\s+)*");
         for (int i = 0; i < arr.length; i++)
           System.out.println("'"+arr[i]+"'");
      }

=>
'da0vid'
'marko'
'rita'
'megan'
'vivian'
'law'
于 2013-09-06T11:34:23.450 に答える
0

単なるアドバイス複数の値で分割するのではなく、これを試してください

import java.util.*;
class test {
  public static void main(String[] args) {
    String s = "david,marko,rita,0 megan,0 vivian,law";
    System.out.println(Arrays.toString(s.replace("0","").replace(" ","").split(",")));
  }
}
于 2013-03-14T08:13:30.333 に答える