我有三个部分的字符串,每个部分由$符号分隔
例如,
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
发布于 2012-11-04 20:29:14
因为字符$是正则表达式中用来标记行尾的保留标记。这就是为什么你必须使用\\对其进行转义。
发布于 2012-11-04 20:29:08
String.split接受正则表达式。
正则表达式中的$表示字符串的nd,因此如果希望匹配文字$字符,则需要对其进行转义。
发布于 2012-11-04 21:17:28
您的示例中显示的$在正则表达式中使用的regex表示字符串的结尾
它用于
$ Checks if a line end follows因此,您必须使用\
https://stackoverflow.com/questions/13218504
复制相似问题