Map和String的相互转化

2023-11-17

Java中的Map集合与String的相互转化

代码如下:

package com.jianhu.Test;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Map和String的相互转化
 * @author yanzc
 *
 */
public class Test05 {

	public static void main(String[] args) {
		
		Map<String,Object> map = new HashMap<>(3);
		map.put("name","小明");
		map.put("sex","男");
		map.put("age","16");
        //Map转String
        String str1 = getMapToString(map);
        System.out.println(str1);
        try {
           //String转map
           Map<String, Object> map1 = getStringToMap(str1);
           System.out.println(map1);
        } catch (Exception e) {
            e.printStackTrace();
        }
	}
	
	/**
    *
    * Map转String
    * @param map
    * @return
    */
   public static String getMapToString(Map<String,Object> map){
       Set<String> keySet = map.keySet();
       //将set集合转换为数组
       String[] keyArray = keySet.toArray(new String[keySet.size()]);
       //给数组排序(升序)
       Arrays.sort(keyArray);
       //因为String拼接效率会很低的,所以转用StringBuilder
       StringBuilder sb = new StringBuilder();
       for (int i = 0; i < keyArray.length; i++) {
           // 参数值为空,则不参与签名 这个方法trim()是去空格
           if ((String.valueOf(map.get(keyArray[i]))).trim().length() > 0) {
               sb.append(keyArray[i]).append(":").append(String.valueOf(map.get(keyArray[i])).trim());
           }
           if(i != keyArray.length-1){
               sb.append(",");
           }
       }
       return sb.toString();
   }
   
   /**
    * 
    * String转map
    * @param str
    * @return
    */
   public static Map<String,Object> getStringToMap(String str){
       //根据逗号截取字符串数组
       String[] str1 = str.split(",");
       //创建Map对象
       Map<String,Object> map = new HashMap<>();
       //循环加入map集合
       for (int i = 0; i < str1.length; i++) {
           //根据":"截取字符串数组
           String[] str2 = str1[i].split(":");
           //str2[0]为KEY,str2[1]为值
           map.put(str2[0],str2[1]);
       }
       return map;
   }
}

输出结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Map和String的相互转化 的相关文章

  • C语言中的“宽字符串”是什么?

    我在书中看到这样一句话 wscanf L lf variable 其中第一个参数的类型为wchar t 这不同于scanf lf variable 其中第一个参数的类型为char 那么比起来有什么区别呢 我以前从未听说过 宽字符串 我听说过
  • C# 从带引号的字符串中删除分隔符

    我正在编写一个程序 必须从文本文件中带引号的字符串中删除分隔符 例如 Hello my name is world 必须 Hello my name is world 起初这听起来很简单 我认为是这样 但是您需要检测引号何时开始 何时结束
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • 从字符串中删除重音符号

    Android 中有没有什么方法 据我所知 没有 java text Normalizer 可以从字符串中删除任何重音 例如 变成 eau 如果可能的话 我想避免解析字符串来检查每个字符 java text NormalizerAndroi
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • JavaScript:搜索字符串时的 indexOf 与 Match? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 使用之间是否存在明显的性能差异 str indexOf src and str match src 我个人比较喜欢match 和正则表达式 但同
  • 正则表达式:如何从字符串中获取单词(C#)

    我的输入由用户发布的字符串组成 我想做的是创建一本包含单词以及它们的使用频率的字典 这意味着我想解析一个字符串 删除所有垃圾 并获取单词列表作为输出 例如 假设输入是 LOLOLOL YOU VE BEEN PWN3D 1einszwei
  • AsyncTask:DoInBackground(String ...)与DoInBackground(Params ...)冲突?

    当尝试使用时Async task要执行 HTTP post 我得到以下信息 ASyncTask DoInBackground String clashes with DoInBackground Params in Android os A
  • 字符串向量上的连接运算符相当于什么?

    我无法找到向量上 连接 运算符的 Rust 等效项Strings 我有一个Vec
  • Python3,当 UserString 不表现为字符串时?

    在Python3中我使用UserString扩展内置字符串的功能 通常UserStrings 的行为就像strs 但与re我遇到了意想不到的情况TypeError bpython version 0 17 1 on top of Pytho
  • PHP中特殊字符的转换

    我已经尝试了很多功能 但我根本无法弄清楚这一点 无论如何 正确的方法 在称为描述的表单字段中 我可以期待各种字符 在将它们提交到数据库之前 需要将它们格式化为 HTML 实体 现在 我的代码 formdesc htmlentities PO
  • Python,将字典存储在数据库中

    在数据库中存储和检索 python 字典的最佳方法是什么 如果您对使用传统 SQL 数据库 例如 MySQL 不是特别感兴趣 您可以研究非结构化文档数据库 其中文档自然映射到 python 字典 例如MongoDB http www mon
  • Java:从 StringBuilder 中删除字符串[重复]

    这个问题在这里已经有答案了 我想从 StringBuilder 中删除 String Example String aaa sample String bbb sample2 String ccc sample3 在另一部分 StringB
  • Powershell 数组到带引号的逗号分隔字符串

    我有一个数组 需要输出到逗号分隔的字符串 但我还需要引号 这是我所拥有的 myArray file1 csv file2 csv a myArray join a 输出为 a最终 file1 csv file2 csv 我想要的输出是 fi
  • java的split string方法也可以返回带分隔符的数组

    当我们使用String Split java中对字符串进行分割的方法 其工作原理如下 String s hello my dear String ss s split 数组ss包含 Hello my dear 但在这种情况下 空格 即分隔符
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • C++11 内部 std::string 表示形式 (libstdc++)

    std string 在 c 11 libstdc 中如何内部表示 在深入研究实现时 我发现 A string looks like this Rep M length basic string
  • 替换打字稿中字符串中字符的所有实例?

    我正在尝试用 x 字符替换电子邮件中的所有句号 例如 电子邮件受保护 cdn cgi l email protection 将变为 myxemail emailxcom 电子邮件设置为字符串 我的问题是它不只是替换句号 而是替换每个字符 所
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4

随机推荐