2013-07-13 22 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("\\.");