String.split(“。”)没有拆分我的长字符串

时间:2013-05-02 13:03:51

标签: java

我正在做以下事情:

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

问题:test2没有项目。但. test中有很多String

知道问题是什么吗?

2 个答案:

答案 0 :(得分:18)

请注意,public String[] split(String regex)需要正则表达式

您需要转发special char .

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

现在你要告诉Java:

不要将.作为特殊字符.,将其作为常规字符. ”。

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


根据@OldCurmudgeon(+1)的评论中的建议,您可以使用public static String quote(String s)返回指定字符串的文字模式字符串”:

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

答案 1 :(得分:10)

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

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

所以String[] test2 = test.split("\\.");应该很好地完成这个伎俩!