4

我正在执行以下操作:

String test = "this is a. example";
String[] test2 = test.split(".");

问题:test2没有项目。但是里面有很多.test String

知道问题是什么吗?

4

2 回答 2

18

请注意,public String[] split(String regex)需要一个regex

您需要转义特殊的 char .

利用String[] test2 = test.split("\\.");

现在你告诉 Java:

不要把它当作.特殊字符.,把它当作普通字符.”。

请注意,转义正则表达式由 完成\,但在 Java 中,\写为\\.


正如@OldCurmudgeon (+1) 的评论中所建议的,您可以使用“为指定的字符串返回文字模式字符串的公共静态字符串引用(字符串 s)

String[] test2 = test.split(Pattern.quote("."));

于 2013-05-02T13:05:05.920 回答
10

.是特殊的正则表达式字符。这意味着匹配任何。您需要转义字符,这在 Java 中是用\\.

一旦它被转义,它就不会被视为特殊字符,并且会像任何其他字符一样被匹配。

所以String[] test2 = test.split("\\.");应该做得很好!

于 2013-05-02T13:05:25.757 回答