Несколько мыслей. Прежде всего: зачем использовать hashtable? hashmap обычно быстрее, так как hashtable синхронизируется.
Тогда: почему бы не использовать дженерики?
HashMap<String, String>
гораздо выразительнее, чем просто HashMap
В-третьих: не используйте new String("UK")
, "UK"
подойдет, вы создаете одну и ту же строку дважды.
Но чтобы решить вашу проблему, вы, вероятно, захотите перевернуть карту:
Map<String,String> countries = new HashMap<String, String>();
countries.put("UK", "United Kingdom");
countries.put("FR", "France");
Теперь, если я вас правильно понимаю, вы хотите сделать что-то вроде этого:
String values = "I am from UK, and you are from FR";
for(Map.Entry<String, String> entry : countries.entrySet()){
values = values.replace(entry.getKey(), entry.getValue());
}