我不知道爲什麼此代碼不起作用。將字符串包名與類拆分
這是我的代碼。
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