HashMap<String, String> apos = new HashMap<String, String>();
apos.put("i'm","I am");
apos.put("can't","cannot");
apos.put("couldn't","could not");
String[] st = new String[]{"i'm","johny"};
Iterator itr = apos.entrySet().iterator();
for (int i = 0; i < st.length; i++) {
while((itr).hasNext()) {
if (itr.equals(st[i]))
{
st[i].replace(st[i],??????(value of the matched key))
}
}
}
我希望将字符串与hashmap进行比较,如果字符与其键匹配,则将字符重新替换为hashmap值。 以上是我想要做的。任何人都可以帮我解决我应该用什么代替钥匙的问题。
帮助将不胜感激。感谢
答案 0 :(得分:2)
您无需遍历地图即可查明数组值是否为地图中的关键字。使用Map#containsKey()
方法。所以,摆脱那个迭代器。
if (map.containsKey(s[i]))
您根本不需要替换。您可以使用=
运算符简单地为数组索引分配新值。
s[i] = newValue;
要从地图中获取要在数组中设置的特定键的值,请使用Map#get(Object)
方法。
map.get(s[i]);
答案 1 :(得分:0)
试试这个:
而不是st[i].replace(st[i],??????(value of the matched key))
使用
if(st[i].equals((String)itr.getKey()))
st[i] = (String)itr.getValue();
有关使用详情,请参阅此tutorial。