2012-02-05 48 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