我不知道为什么此代码不起作用。将字符串包名与类拆分
这是我的代码。
String value[] = pce.getPropertyName().toString().split(".");
pce.getPropertyName的值是com.newbie.model.Names
,当我调试它的价值的大小为0
任何人都遇到这样的问题?
我不知道为什么此代码不起作用。将字符串包名与类拆分
这是我的代码。
String value[] = pce.getPropertyName().toString().split(".");
pce.getPropertyName的值是com.newbie.model.Names
,当我调试它的价值的大小为0
任何人都遇到这样的问题?
你必须逃脱点字符,因为点是元字符:
String value[] = pce.getPropertyName().toString().split("\\.");
感谢bro @aquaraga我应该等10分钟才能接受这个答案。再次感谢 –
.
在正则表达式世界(特别是,它匹配任何字符)一个特殊的意义,记得split()
确实需要一个正则表达式作为参数。您想要
String value[] = pce.getPropertyName().toString().split("\\.");
即转义.
。
谢谢arshajii –
如果你想点或其他字符在正则表达式特殊的含义是一个正常的字符,你必须使用反斜杠进行转义。由于Java中的正则表达式是正常的Java字符串,需要转义反斜线本身,所以你需要两个反斜杠像\\.
Java docs为同一可以在这里找到。
所以,这是你应该做的。
String value[] = pce.getPropertyName().toString().split("\\.");
你真的相信,任何人都可以了解所有的问题只是一个行代码语句? –
那么,它甚至没有正确执行它。如果'getPropertyName'的值是“com.newbie.model.Names”,那么它不会是0.在别的地方一个bug – Coffee
pce是什么类型的对象? (我会猜测PropertyChangeEvent,但没有办法确定)getPropertyName()返回什么? – Jokab