我正在尝试拆分看起来像这样的字符串:
{
"from": japan
"to": tokyo
},
{
"from": new york
"to": tokyo
},
{
"id": 2509402760,
"date": "2016-04-16T00:00:00",
}
我只想打印出"来自和#34;。我正在使用substring删除ID和数据。
子字符串如下所示:
fullData.substring(fullData.indexOf("{"), (fullData.indexOf("}"));
这个子串的问题在于我只得到第一个"来自和#34;而不是之后的那些是纽约和东京。
为了解决这个问题,我尝试了这个子字符串:
fullData.substring(fullData.indexOf("{"), (fullData.indexOf("},{\"id"));
这个问题是我得到了一个"出界指数"。我认为问题是字符串以新行开头。
如何使indexof与新行匹配,该行以" id"开头。
我无法使用replaceAll替换所有行。我想把它原样子串起来。 我希望您理解我的问题,如果需要,我很乐意提供更多数据。
谢谢。
答案 0 :(得分:6)
最好的方法是为您的数据使用JSON解析器。如果这不是一个选项,请使用the second overload of indexOf
来指定开始查找子字符串的最低位置:
int pos1 = fullData.indexOf("{");
int pos2 = fullData.indexOf("}", pos1);
String sub1 = fullData.substring(pos1, pos2);
int pos3 = fullData.indexOf("{", pos2);
int pos4 = fullData.indexOf("}", pos3);
String sub2 = fullData.substring(pos3, pos4);