为什么String.split(“$”)不起作用?
我有三个部分字符串,每个部分用$
符号分隔
例如,
String s = "abc$efg$xyz";
现在当我使用split
方法拆分它时,如下所示:
String values[] = s.split("$");
它的values
数组包含整个字符串作为单个元素。
但是当我使用它时:
String values[]=s.split("\\$");
它完美地发挥了我想要的意义
现在, values
数组分别包含索引0,1和2上的abc
, efg
和xyz
。
我想知道为什么第一次split
不起作用,因为我在使用split(" ");
a single white space
时使用了类似的split
split(" ");
因为字符$
是正则表达式中用于标记行尾的保留标记。 这就是为什么你必须使用\\
来逃避它 。
String.split
采用正则表达式。
正则表达式中的$
表示字符串的nd,因此如果要匹配文字$
字符,则需要将其转义。
在您的示例中显示的$是在正则表达式中表示在java中的正则表达式中使用的字符串的结尾
它用于
$ Checks if a line end follows
所以你要使用\\