我正在做以下事情:
String test = "this is a. example";
String[] test2 = test.split(".");
问题:test2
没有项目。但.
test
中有很多String
。
知道问题是什么吗?
答案 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("\\.");
应该很好地完成这个伎俩!