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

标签 java android string split

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

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

最佳答案

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

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

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

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

关于java - 如何调试返回带有值但没有内容的字符串的 Java 字符串拆分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152441/

相关文章:

Android:9-patch 重复模式而不是拉伸(stretch)

android - 需要来自另一个目录的 Gradle 项目

java - 一个字母在一个短语中的出现

string - 树的 LCS 算法

java - 我如何检查 Java 中的 Vector3 (x,y,z) 是否位于另外 2 个 Vector3 之间?

java - 使用 Java WatchService 监视和解析日志文件

android - 未知主机(我的代理IP)。您可能需要在Android Studio中的Gradle中调整代理设置

Java string.equals 不等式函数?

java - 如何为以下示例更好地创建 JSON

java - 如何将另一个类的组合框的选定索引设置为 0