0

由于下面的两个 for 循环,我应该得到一个专辑名称这个词,但我得到这个名字的顺序相反。例如,如果我期望“LINK”,我会得到“KNIL”......我哪里出错了?

这是代码:

jsonobj = new JSONObject(param);
JSONObject datajson = jsonobj.getJSONObject("data");
JSONArray news = datajson.getJSONArray(TAG_NEWS);
JSONArray actual = datajson.getJSONArray("actual");
for(int i = 0; i < news.length(); i++){
    JSONObject c = news.getJSONObject(i);

    // Storing each json item in variable
    String id = c.getString(TAG_ID);
    String title = c.getString(TAG_TITLE);
    String album = c.getString(TAG_ALBUM);
    TextView tv = (TextView) findViewById(R.id.imgtest);
    //tv.setText(album);
    if(!(album == "null")){
        String var[] = album.split("|");
        for(int a=0;a<var.length;a++){
            String t = var[a].intern();
            String al = ((TextView) findViewById(R.id.imgtest)).getText().toString();
            String b = t+al;
            tv.setText(b);
        }
    }else{
        break;
    }
}
4

2 回答 2

2

此行将最新字母添加t到现有 String 的开头al

String b = t+al;

然而,与其简单地在 ( b = al + t) 附近切换这条线,我推荐一种更快的方法:

String album = c.getString(TAG_ALBUM).replaceAll("|", "");
TextView tv = (TextView) findViewById(R.id.imgtest);
tv.setText(album);

我看起来你只想删除“|” 字符串中的字符album,所以只需使用String.replaceAll().


如果您需要album拆分成一个数组,那么当您重建字符串时,不要浪费时间调用findViewById()您已经拥有的视图。事实上你已经有了字符串,所以没有必要使用getText()

String var[] = album.split("|");
StringBuilder builder = new StringBuilder();
for(int a=0;a<var.length;a++)
    builder.append(a);

// use builder.toString() when you want the cleaned album name.
于 2012-09-04T19:44:43.583 回答
0

要将最新的字母添加t到当前字符串的末尾al

b = al + t
于 2012-09-04T20:58:04.973 回答