1
        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 值替换一个单词。以上是我想要做的。谁能帮我写什么来代替钥匙。

帮助将不胜感激。谢谢

4

2 回答 2

2
  1. 您不需要遍历映射来确定数组值是否是映射中的键。使用Map#containsKey()方法。所以,摆脱那个迭代器。

    if (map.containsKey(s[i]))
    
  2. 你根本不需要更换。您可以使用运算符简单地为数组索引分配一个新值=

    s[i] = newValue;
    
  3. 要从映射中获取要在数组中设置的特定键的值,请使用Map#get(Object)方法。

    map.get(s[i]);
    
于 2013-09-24T17:25:55.747 回答
0

试试这个:而不是st[i].replace(st[i],??????(value of the matched key))

利用

   if(st[i].equals((String)itr.getKey()))
     st[i] = (String)itr.getValue(); 

有关使用详细信息,请参阅本教程

于 2013-09-24T17:30:41.750 回答