2013-07-13 23 views
0

我不知道为什么此代码不起作用。将字符串包名与类拆分

这是我的代码。

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

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

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

任何人都遇到这样的问题?

+0

你真的相信,任何人都可以了解所有的问题只是一个行代码语句? –

+0

那么,它甚至没有正确执行它。如果'getPropertyName'的值是“com.newbie.model.Names”,那么它不会是0.在别的地方一个bug – Coffee

+0

pce是什么类型的对象? (我会猜测PropertyChangeEvent,但没有办法确定)getPropertyName()返回什么? – Jokab

回答

1

你必须逃脱点字符,因为点是元字符:

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

感谢bro @aquaraga我应该等10分钟才能接受这个答案。再次感谢 –

3

.在正则表达式世界(特别是,它匹配任何字符)一个特殊的意义,记得split()确实需要一个正则表达式作为参数。您想要

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

即转义.

+1

谢谢arshajii –

0

如果你想点或其他字符在正则表达式特殊的含义是一个正常的字符,你必须使用反斜杠进行转义。由于Java中的正则表达式是正常的Java字符串,需要转义反斜线本身,所以你需要两个反斜杠像\\.

Java docs为同一可以在这里找到。

所以,这是你应该做的。

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