2012-07-10 78 views
0

我有一个输出的形式:Android的字符串操作,字符串中的单独的行

{"status":"07\/09\/201207:16||heythisisatestquestion||AndyesIreallyansweredthisquestiontoo-||07\/09\/201207:10||heythisistestquestion||ThisismyresponsetoyourTESTquestion-yes,Ireallyansweredyou.:-)||07\/09\/201206:29||sos||SOSagain-yes||07\/09\/201206:27||sos||SOSagain-yes||07\/09\/201205:05||test||Yes,respondingtothisTEST-yes,it'sworking","phone":"xxxxxxxxx"} 

我想要做的是,我应该得到每个值由||分离在阵列

例如:

**07\/09\/201207:16 .. 07\/09\/201207:10 .. 07\/09\/201206:29** should be in array date 

**heythisisatestquestion .. heythisistestquestion .. sos** should be in array question 

**AndyesIreallyansweredthisquestiontoo .. ThisismyresponsetoyourTESTquestion .. Ireallyansweredyou** 

应该在阵列的答案,我怎样才能通过匹配关键字||每个值分开。

回答

1

如果你正在使用PHP生成您可以在explode 找到类似功能的JSON使用表达式,然后发送数组或Java中

int count=0; 
     String[] arr; 
     arr=str.split("\\|\\|"); 
     for(int i=0,j=1,k=2;i<str.length;i+=3,j+=3,k+=3) 
    { 

    array1[count]=arr[i]; 
    array2[count]=arr[j]; 
    ..... 
    ..... 
count++; 

    } 
+0

让它工作,thnx很多:D – ZealDeveloper 2012-07-10 06:05:18

1

首先,您应该解析JSON以获取状态字符串。

然后沿着"\\|\\|"分割状态字符串。即.split("\\|\\|")。而在3

假设状态文本的格式组挑选出的令牌始终是有效的:

ArrayList<String> date = new ArrayList<String>(); 
ArrayList<String> question = new ArrayList<String>(); 
ArrayList<String> response = new ArrayList<String>(); 

for (int i = 0; i < tokenArray.length/3; i++) { 
    date.add(tokenArray[i * 3]); 
    question.add(tokenArray[i * 3 + 1]); 
    response.add(tokenArray[i * 3 + 2]); 
} 
+0

可以请您给工作示例,对不起,我是新来的Java和Android – ZealDeveloper 2012-07-10 05:41:17

+0

好吧,我使用的分裂和我得到的所有值在数组中,现在怎么样应该选择令牌和a将它们分开放入数组中。 -Thnks快速回复 – ZealDeveloper 2012-07-10 05:48:09