この関数は、文字列内の特定の部分文字列をそれぞれの値に置き換えるために使用します。文字列内の複数のサブ文字列を置き換えます。
//マップ(string_to_replaceは、string_to_replace_with)
String template = "ola ala kala pala sala";
StringBuilder populatedTemplate = new StringBuilder();
HashMap<String, String> map = new HashMap<>();
map.put("ola", "patola");
map.put("pala", "papala");
int i=0;
for (String word : template.split("'")) {
populatedTemplate.append(map.getOrDefault(word, word));
populatedTemplate.append(" ");
}
System.out.println(populatedTemplate.toString());
ストリングを交換する場合は、この上記の機能は正常に動作しますが、「「(スペース)に囲まれています。
Ex-String => "Hey {how}は$ =あなた" 置き換えられる部分文字列が "Hey"または "you"の場合、正常に動作します。問題は、「どのように」と「あなた」を置き換えたいときです。
これをさらに複雑にすることなくどのように達成できますか?
をなぜ 'template.replace(string_to_replaceは、string_to_replace_with)'として、多くの場合、あなたが必要として? PS:そうでなければ動作するかもしれないhttp://stackoverflow.com/questions/1324676/what-is-a-word-boundary-in-regexes – zapl
@zaplその問題は、置換が依存していることです。つまり、「どのように」「存在する」、「存在する」を「大丈夫」に置き換えることができます。最初の反復文字列の後に "Hey {are} $ = you"となります。そして、2回目の繰り返しの後に "おい、お元気ですか$ =あなた"。 Andsは間違った出力。 – tarun14110