2013-09-05 19 views
0

我有这样一个Android的TextView内的Java字符串排序

"3":"BBB, AAA, Location","2":"BBB, AAA, Location,"1":"BBB, AAA, Location" 

一个名字,我想这样的

1. BBB, AAA, Location 
2. BBB, AAA, Location 
3. BBB, AAA, Location 

结果我试图用这个

Name.setText(Name.replace("\"", "").replace(":", ". ")); 

我知道, /n将用于换行。但是,仍然有点困惑我怎么能做到这一点。

+0

它看起来像一个JSON字符串,为什么不使用库将其转换为Java对象或数组? GSON似乎是一种常见的选择:https://code.google.com/p/google-gson/ –

+0

是的,它是从JSON文件中解析出来的。 – user2579475

回答

1
String[] newText = Name.split("\",\""); //it returns an array of strings 
for (int i=0; i<newText.length; i++) 
    newText[i] = newText[i].replace("\"", "").replace(":", ". "); 
Arrays.sort(newText); 
String ultimateText = ""; 
for (String s : newText) 
    ultimateText = ultimateText+s+"\n"; 
Name.setText(ultimateText); 

这很棘手。导入数组。

+0

即使他正确地格式化字符串,项目将失序。 –

+0

感谢您的帮助。但是,我需要订购这些数据。 – user2579475

+0

对。 (:有一种方法:他可以'Name.split(“\”,\“”)'然后替换,然后用一些比较器命令,然后重建它和'setText()'。但是我认为更高效的一些JSON库,就像你和@HunterMcMillen所说的那样。 –

0

由于@HunterMcMillen声明您应该使用Json库,Gson是一个不错的选择,但可以稍微先进一些,也许可以尝试使用JSON字符串免费库。

使用任何JSON库你会做的是得到一个JSON对象或这3个选项的数组,将它们放在数组列表中并对它们进行排序。然后将其添加到格式化的输出中。我将开始改变你通过存储为JSON对象(无论是Gson还是Json.org)来存储你发布的字符串的方式。然后从那里出发。

相关问题