我在数据库中保存了一个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
我做错了什么?
答案 0 :(得分:7)
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