当我尝试解析以下字符串时我只得到第一个数组,我无法得到第二个和第三个部分。这是我从API收到的回复,我无法更改。
这是字符串
[3451605#John#600#Doe],[3503101#Jane#100#Doe]
这是我的代码
String String1= response.replace("[", "");
String String2= String1.replace("]", "");
String[] ss=String1.split("#");
for(int i=0;i<ss.length;i++)
{
System.out.println(ss[i]);
resp1= ss[0];
resp2= ss[1];
resp3= ss[2];
resp4= ss[3];
}
这是我打印出回复时得到的回复。
3451605
John
600
Doe,3503101
Jane
100
Doe
答案 0 :(得分:3)
您可能希望通过拆分反序列化响应,如下所示:
,
分隔您的对象[]
并按#
示例强>
// test response
String response = "[3451605#John#600#Doe],[3503101#Jane#100#Doe]";
// itemizing "objects"
String[] items = response.split(",");
// iterating "objects"
for (String item: items) {
// cleaning square brackets and splitting by "#"
String[] properties = item.replaceAll("\\[|\\]", "").split("#");
// printing each object's properties
System.out.println(Arrays.toString(properties));
}
<强>输出强>
[3451605, John, 600, Doe]
[3503101, Jane, 100, Doe]
答案 1 :(得分:0)
你正在拆分string1而不是string2
String String1= response.replace("[", "");
String String2= String1.replace("]", "");
String[] ss=String2.split("#");
答案 2 :(得分:0)
我想你想要一个像这样的输出:
3451605
John
600
Doe
3503101
Jane
100
Doe
所以你必须分成#
和,
。
String[] ss=String2.split("[#,]");