HashMapを使用して、省略形のフルフォームを保存しています。省略形/スラングをフルフォームに置き換える
public class Test {
public static void main(String[] args) {
Map<String, String> slangs = new HashMap<String, String>();
slangs.put("lol", "laugh out loud");
slangs.put("r", " are ");
slangs.put("n", " and ");
slangs.put("idk", " I don't know ");
slangs.put("u", " you ");
Set set = slangs.entrySet();
Iterator i = set.iterator();
String sentence = "lol how are you";
StringBuilder sb = new StringBuilder();
for (String word : sentence.split(" ")) {
while(i.hasNext()) {
Map.Entry<String, String> me = (Map.Entry)i.next();
if (word.equalsIgnoreCase(me.getKey())) {
sb.append(me.getValue());
continue;
}
sb.append(word);
}
}
System.out.println(sb.toString());
}
}
出力は次のようになります。ここで間違っているとどのように私はそれを解決するのです
lollollollaugh out loudlol
何?あなたはマッチを見つけるために、エントリを反復することになっていません
Idkなぜあなたはそれをかなり複雑にしますか?私の最初の考えでは、文章を単語に分割し、「スラング」にそれが含まれているかどうかを確認してください。 –
あなたはどのような結果を得たいですか? –
出力は次のようにする必要があります。「あなたは大声で笑うよ」 –