如何调试返回有值但没有内容的字符串的Java字符串拆分?

如何调试返回有值但没有内容的字符串的Java字符串拆分?,java,android,string,split,Java,Android,String,Split,我尝试使用正则表达式拆分一个字符串,该字符串给了我一个包含2项的数组。 我只对第一个元素感兴趣,但是调试器报告它没有任何内容(在屏幕截图上的黄色圆圈中),但有一个我在正则表达式中匹配的项的“值”。(屏幕截图上以蓝色突出显示) 如何以编程方式获取该值 以下是我正在使用的代码: //Handle Related description by stripping off data relating to it String[] descriptionShortened=jsonObj

我尝试使用正则表达式拆分一个字符串,该字符串给了我一个包含2项的数组。 我只对第一个元素感兴趣,但是调试器报告它没有任何内容(在屏幕截图上的黄色圆圈中),但有一个我在正则表达式中匹配的项的“值”。(屏幕截图上以蓝色突出显示)

如何以编程方式获取该值

以下是我正在使用的代码:

//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);

[^Related]匹配一个字符类,该类匹配除字母R、e、l、a、t、e、d之外的所有字符。正则表达式将匹配任何内容,这就是数组的第一个元素为空的原因。如果您想要创建一个字符串,它在字符串“Related”之前包含所有内容,只需调用

descriptionShortened = jsonObject.getString("description").split("Related");
字符串
“Related”
之前的所有内容都将位于返回的数组中的第一个元素中。例如,如果
jsonObject.getString(“description”)
返回
“abcdrelatedfgh”
,则上面的代码将返回一个数组
{“abcd”,“efgh”}


关于你的第一个问题和屏幕截图,这个字符串实际上是空的。该值是一个指针,但它指向空空间。每个字符串都有一个值字段,但这并不意味着它不是空的。

[^Related]
可能不会做您认为它会做的事情(当然取决于您认为它会做什么)。我正在尝试匹配文本文件中相关之前的所有内容-我想您的意思是我应该尝试匹配字符串末尾相关之后的所有内容?我会试试看!您能否举例说明jsonObject.getString(“description”)返回的内容,以及您希望descriptionShortened数组的外观?与上面德克提到的一样,现在还不清楚你的正则表达式对于你想要实现的目标是否正确。谢谢-就是这样。非常感谢你的解释。