0

以下の 2 つの 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 に答える