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

只是一个建议而不是用多个值拆分试试这个

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 回答
0

你可以试试这个:

public class SplitTest {

    public static void main(String[] args) {
        String inputString = "david,marko,rita,0 megan,0 vivian,law";
        String splits[] = inputString.split(",0?\\s*");
        for (String split : splits) {
            System.out.println(split);
        }
    }
}
于 2013-03-14T08:36:23.423 回答
0
String[] arr = s.split(",(0\\s+)*");

正则表达式以逗号分隔,后跟可选的 0 和一个或多个空格。

      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 回答