2012-02-05 56 views
0

我嘗試使用regEx來分割一個String,它給了我一個包含2個項目的數組。 我只對第一個元素很感興趣,但是調試器報告它沒有任何內容(在屏幕截圖上的黃色圓圈內),但它具有我在正則表達式中匹配項的「值」。 (高亮藍色的屏幕截圖)如何調試Java字符串拆分返回一個字符串的值,但沒有內容?

enter image description here

如何編程得到的價值?

這裏是我使用的代碼:

//Handle Related description by stripping off data relating to it 
     String[] descriptionShortened=jsonObject.getString("description").split("^.*[^Related]"); 
     String descriptionintro=descriptionShortened[0].toString(); 


     descriptionList.add(descriptionintro); 
+3

''[^相關]'可能不會做你認爲它所做的事情(當然,取決於你的想法)。 – Dirk 2012-02-05 20:02:15

+0

我想匹配以前的所有內容在文本文件相關 - 我假設你的意思是我應該嘗試匹配所有相關的字符串結束後的一切?會嘗試一下! – 2012-02-05 20:13:45

+0

你能展示一個jsonObject.getString(「描述」)返回的例子,然後你想讓你的descriptionShortened數組看起來像什麼?根據Dirk在上面提到的內容,不清楚你的正則表達式是否正確或者你想達到什麼目的。 – Fraggle 2012-02-05 20:21:31

回答

2

[^相關]匹配一個字符類其中除了字母匹配一切R,E,L,A,T,E,d 。你的正則表達式將匹配任何東西,這就是爲什麼數組的第一個元素是空的。如果你想有字符串「相關」之前的所有字符串,只需調用

descriptionShortened = jsonObject.getString("description").split("Related"); 

之前的所有字符串"Related"將在返回的數組中的第一個元素。例如,如果jsonObject.getString("description")返回"abcdRelatedefgh",則上面的代碼將返回一個數組{ "abcd", "efgh" }

關於你的第一個問題和截圖,那個String真的是空的。該值是一個指針,但它指向空白空間。每個字符串都有一個值字段,但這並不意味着它不是空的。

+0

謝謝 - 這樣做。並真正感謝額外的解釋。 – 2012-02-05 23:23:55