String.split()使用多个字符分隔符

时间:2014-01-20 07:22:27

标签: java regex string split

我在数据库中保存了一个String,如下所示:

01/01/2014$%^&02/01/2014

我正在使用split() java方法。这是我的代码:

String value = database.getValue(); // this returns the value mentioned above
String values[] = value.split("$%^&");

System.out.println("length is = " + values.length);
System.out.println(values[0]);

输出:

length is = 1
01/01/2014$%^&02/01/2014

我做错了什么?

2 个答案:

答案 0 :(得分:7)

使用Pattern#quote

String values[] = value.split(Pattern.quote("$%^&"));
  

我做错了什么?

String#split以正则表达式作为参数。 String中的某些字符有special meaning。在您的情况下,您需要字符串表示,而不是正则表达式。 quote为你做到了。

替代解决方案:

  • \\转义特殊字符(转义正则表达式由\完成。但在Java中,\写为\\
  • 使用接受字符串
  • String#replace

答案 1 :(得分:0)

你也可以尝试一下。在这里,我们可以逃避特殊角色。

    String value = "01/01/2014$%^&02/01/2014";
    String values[] = value.split("\\$%\\^&");

    System.out.println("length is = " + values.length);
    System.out.println(values[0]);

Out put:

   length is = 2
   01/01/2014