我不知道为什么这段代码不起作用。
这是我的代码。
String value[] = pce.getPropertyName().toString().split(".");
pce.getPropertyName的值是com.newbie.model.Names
当我调试它时,值的大小为0.
有人遇到过这个问题吗?
答案 0 :(得分:3)
.
在regex-world中具有特殊含义(具体来说,它匹配任何字符),并且回想起split()
确实将正则表达式作为参数。你想要
String value[] = pce.getPropertyName().toString().split("\\.");
即。逃避.
。
答案 1 :(得分:1)
你必须转义点字符,因为dot是一个元字符:
String value[] = pce.getPropertyName().toString().split("\\.");
答案 2 :(得分:0)
如果您希望正则字符中具有特殊含义的点或其他字符是普通字符,则必须使用反斜杠将其转义。由于Java中的正则表达式是普通的Java字符串,因此您需要转义反斜杠本身,因此需要两个反斜杠,如\\.
Java docs也可以在这里找到。
所以,这就是你应该做的。
String value[] = pce.getPropertyName().toString().split("\\.");