-2

在我的项目中,我使用代码来拆分字符串,如 "004*034556" ,代码如下:

String string = "004*034556";
String[] parts = string.split("*");

但它有一些错误并强制关闭!最后我发现如果使用“#”或其他东西它会起作用。

String string = "004#034556";
String[] parts = string.split("#");

我该怎么解释这个?!

4

3 回答 3

2

你忘记了一些非常琐碎的事情。

String string = "004*034556";
String[] parts = string.split("\\*");

我建议您查看Escape Characters

于 2013-10-27T16:54:55.997 回答
1

用于Pattern.quote处理*类似字符串*而不是正则表达式*(具有特殊含义):

String[] parts = string.split(Pattern.quote("*"));

String#split

public String[] split(String regex)
                             ↑
于 2013-10-27T16:55:41.253 回答
1

参考JavaDoc

 String[] split(String regex) 

 Splits this string around matches of the given regular expression.

当我们谈论Java中的Regex时,符号“*”具有不同的含义

因此,您将不得不使用转义字符

String[] parts = string.split("\\*");
于 2013-10-27T16:55:17.710 回答