2017-03-05 1 views
-2

文字列を置き換えるAndroidのは、私は、このタグを持つ文字列配列の下に、この中でdoesntの仕事

String[] replacementHtmlTags = { 
     "<font color=\"red\">", 
     "<font color=\"green\">", 
     "<font color=\"blue\">", 
     "</font>", 
     "</font>", 
     "</font>" 
}; 

は、今後の目標を定義し、私を交換しますコードが動作しません:

String rawParagraph = "11111 <mft:A>22222</mft:A> 33333 <mft:S> 44444 <mft:A> 555555 <mft:S> 66666 </mft:S></mft:A></mft:S><mft:R> 77777 </mft:R>" 

for (int tag = 0; tag < tags.length; tag++) { 
    rawParagraph.replace(tags[tag], replacementHtmlTags[tag]); 
} 
+1

文字列は* immutable *なので、replace()は新しい値を返します。現在の値を更新することはできません(できません)。 – Andreas

+0

@Andreas ok、どうすれば私のコードのような配列を使ってすべてのタグを置き換えることができますか? –

+0

@アンドレアス、ありがとう、問題が解決しました –

答えて

1

私はベットのためにこのアプローチに従うべきだと思いますユーザビリティとマッピング:

public static HashMap<String, String> keyVal; 

static { 
    keyVal = new HashMap<String, String>(); 
    keyVal.put("<mft:A>", "<font color=\\red\">"); 
    keyVal.put("<mft:S>", "<font color=\\green\">"); 
    keyVal.put("<mft:R>", "<font color=\\blue\">"); 
    keyVal.put("</mft:A>", "</font>"); 
    keyVal.put("</mft:S>", "</font>"); 
    keyVal.put("</mft:R>", "</font>"); 
} 

public String replaceTag(String replace) { 
    for(String key:keyVal.keySet()) 
     replace=replace.replaceAll(key,keyVal.get(key)); 
    return replace; 
} 
関連する問題