0

我不知道为什么这段代码不起作用。

这是我的代码。

String value[] = pce.getPropertyName().toString().split(".");

pce.getPropertyName 的值为 com.newbie.model.Names

当我调试它时,值的大小为 0。

有人遇到这个问题吗?

4

3 回答 3

3

.在正则表达式世界中具有特殊含义(具体来说,它匹配任何字符),并且回想一下split()确实将正则表达式作为参数。你要

String value[] = pce.getPropertyName().toString().split("\\.");

即逃避..

于 2013-07-13T16:42:02.630 回答
1

您必须转义点字符,因为点是元字符:

String value[] = pce.getPropertyName().toString().split("\\.");
于 2013-07-13T16:42:08.840 回答
0

如果您希望正则表达式中具有特殊含义的点或其他字符成为普通字符,则必须使用反斜杠对其进行转义。由于 Java 中的正则表达式是普通的 Java 字符串,因此您需要转义反斜杠本身,因此您需要两个反斜杠,例如\\.

可以在此处找到相同的Java 文档。

所以,这是你应该做的。

String value[] = pce.getPropertyName().toString().split("\\.");

于 2013-07-13T16:47:44.900 回答