Java使用昏迷或0(零)后跟空格分割字符串

时间:2013-03-14 08:00:47

标签: java regex expression

如果我有一个字符串,例如

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

我需要将此字符串拆分为

david
marko
rita
megan
vivian
law

我正在尝试

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

但没有奏效。有什么建议吗?

5 个答案:

答案 0 :(得分:3)

你可以使用这个表达式:

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

或者甚至可能:

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

从示例中不清楚您想要哪一个。

答案 1 :(得分: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);
        }
    }

答案 2 :(得分: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(",")));
  }
}

答案 3 :(得分: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);
        }
    }
}

答案 4 :(得分: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'