【问题标题】:how to convert a hash table in string in java如何在java中将哈希表转换为字符串
【发布时间】:2015-09-04 10:44:47
【问题描述】:

我是java新手,我想以字符串的形式转换一个哈希表,每对用任何特殊字符分隔。我有点困惑如何在哈希表上应用循环并从中提取值。请解释我如何做到这一点。在此先感谢

 public String parseHashtable(Hashtable detailHashtable){

    String hashstring= "";
    foreach(){
    hashstring += key + "=" + hashtable[key] + "|";
    }
     return hashstring;
 }

【问题讨论】:

  • 有什么问题?
  • @vish4071 是的,这就是我需要的。如何在for循环中应用条件
  • 请注意,您可能希望使用StringBuilder 来连接字符串。
  • 好的。我猜你有解决问题的答案。

标签: java hashtable


【解决方案1】:

您可以按如下方式使用 Map.Entry:

 String hashstring= "";
    for (Map.Entry<String, String> entry : hashTable.entrySet()) {
        hashstring += entry.getKey() + "=" + entry.getValue() + "|";
    }

【讨论】:

    【解决方案2】:
    String seperator = "|";
    StringBuilder sb = new StringBuilder();
    
    Set<String> keys = detailHashtable.keySet();
    for(String key: keys) {
        sb.append(key+"="+detailHashtable.get(key)+ seperator);
    }
    
    return sb.toString();
    

    【讨论】:

    • 我的错误,应该是detailHashtable 而不是hm。我已经改了。
    • 不工作。该字符串显示的值非常不同,而不是我在哈希表中的值
    • 你的keyvalue是什么对象类型
    • 你能发布你得到的值和你应该得到的值吗
    【解决方案3】:

    HashMapHashTable 都可以使用Map.Entry 同时获取键和值。

    String hashstring= "";
    for (Map.Entry<String, String> entry : detailHashtable.entrySet()) {
        hashstring += entry.getKey() + "=" + entry.getValue() + "|";
    }
    

    请参阅 API 以了解可以使用哪些操作。 http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html#entrySet()

    【讨论】:

    • 它给出错误类型不匹配:无法从元素类型 Object 转换为 Map.Entry
    • 我假设您的键和值是字符串。根据需要更改数据类型。你的 HashTable 的键值类型是什么?
    【解决方案4】:
    public String parseHashtable(Hashtable detailHashtable){
    
        String hashstring= "";
        for(Entry<String,String> entry : detailHashtable.entrySet()){
            hashstring += entry.getKey() + "=" + entry.getValue() + "| ";
        }
    
        return hashstring;  
    }
    

    【讨论】:

    • foreach 似乎不是 java... ;)
    【解决方案5】:

    Map 扩展自 Hashtable 提供了方法 Map.entrySet(),它返回一个包含映射中所有条目的集合。

    for(Map.Entry e : detailHashTable.entrySet()){
        Object key = e.getKey();
        Object value = e.getValue();
    
        ...
    }
    

    【讨论】:

      【解决方案6】:

      使用entry.getKey().to String()entry.getValue().toString()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-07
        • 2021-12-30
        • 2012-03-10
        • 2015-08-24
        • 2014-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多