java中map转string_字符串转list集合

java中map转string_字符串转list集合JAVAMap集合转String,String转Map集合当前两个转换方法主要用作支付宝,微信支付额外参数转换先看效果是不是诸君想要的map转string的值id=1&name=哆啦A梦丶幻想string转map的值{name=哆啦A梦丶幻想,id=1}贴代码://这里是用单元测试测试的两个方法@Testpubli…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

JAVA Map集合转String,String转Map集合##


当前两个转换方法主要用作支付宝,微信支付额外参数转换

先看效果是不是诸君想要的
map转string的值
id=1&name=哆啦A梦丶幻想

string转map的值
{name=哆啦A梦丶幻想, id=1}


贴代码:

	//这里是用单元测试测试的两个方法
    @Test
    public void filet(){
        Map<String,String> objectMap = new HashMap<>(3);
        objectMap.put("id","1");
        objectMap.put("name","哆啦A梦丶幻想");
        //map转string
        String passBackParams = StrUtils.getMapToString(objectMap);
        System.out.println(passBackParams);
        try {
            //string转map
           Map map =  StrUtils.getStringToMap(passBackParams);
            System.out.println(map);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

然后两个方法的主要代码:

	//参数类型是Map<String,String> 因为支付只能用string的参数。如果诸君还需要修改的话,那也可以适当的做调整
	/**
	 *
	 * map转str
	 * @param map
	 * @return
	 */
	public static String getMapToString(Map<String,String> map){
		Set<String> keySet = map.keySet();
		//将set集合转换为数组
		String[] keyArray = keySet.toArray(new String[keySet.size()]);
		//给数组排序(升序)
		Arrays.sort(keyArray);
		//因为String拼接效率会很低的,所以转用StringBuilder。博主会在这篇博文发后不久,会更新一篇String与StringBuilder开发时的抉择的博文。
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < keyArray.length; i++) {
			// 参数值为空,则不参与签名 这个方法trim()是去空格
			if (map.get(keyArray[i]).trim().length() > 0) {
				sb.append(keyArray[i]).append("=").append(map.get(keyArray[i]).trim());
			}
			if(i != keyArray.length-1){
				sb.append("&");
			}
		}
		return sb.toString();
	}
	/**
	 * 2018年10月24日更新
	 * String转map
	 * @param str
	 * @return
	 */
	public static Map<String,String> getStringToMap(String str){
		//感谢bojueyou指出的问题
		//判断str是否有值
		if(null == str || "".equals(str)){
			return null;
		}
		//根据&截取
		String[] strings = str.split("&");
		//设置HashMap长度
		int mapLength = strings.length;
		//判断hashMap的长度是否是2的幂。
		if((strings.length % 2) != 0){
			mapLength = mapLength+1;
		}

		Map<String,String> map = new HashMap<>(mapLength);
		//循环加入map集合
		for (int i = 0; i < strings.length; i++) {
			//截取一组字符串
			String[] strArray = strings[i].split("=");
			//strArray[0]为KEY  strArray[1]为值
			map.put(strArray[0],strArray[1]);
		}
		return map;
	}

完

如有建议,欢迎指出。

String,StringBuffer,StringBuilder有什么区别?项目中什么时候用?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195297.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ODrive开发 #1 ODrive固件开发指南[通俗易懂]

    ODrive固件开发指南本指南适用于希望修改ODrive固件的开发人员。因此,它假定您了解诸如如何使用Git,什么是编译器之类的知识。如果这听起来很陌生,以下内容对您来说可能不适合。官方发行版在master分支上。但是,由于您是开发人员,因此建议您使用devel分支,因为它包含最新功能。该项目正在积极开发中,因此请确保检查更新日志以跟踪更新动态。文章目录ODrive固件开发指南需要的开…

    2022年4月18日
  • 一招彻底解决win10开机桌面及任务栏卡死问题

    一招彻底解决win10开机桌面及任务栏卡死问题问题描述:从9月份开始,我的笔记本(win10)隔三差五地出现开机后桌面和任务栏卡死的状况,具体表现为开机进入桌面后桌面图标点击无响应;把鼠标移动到桌面底部任务栏显示鼠标的小圆圈一直在加载,若此时多次点击任务栏则会导致资源管理器崩溃并重新启动,重启服务后资源管理器再次陷入卡死。。。如此循环往复,老折磨人了qwq…尝试过的几种解决方案:Ctrl+Alt+Delete呼出任务管理器,点击“进程”选项卡,找到资源管理器,然后单击“重新启动”。(未解决)同时按下Ctrl+Alt+D

    2022年4月25日
  • Crontab定时任务配置

    Crontab定时任务配置一、开启crontab1.查看crontab是否启动sudolaunchctllist|grepcron2.检查需要的文件ls-al/etc/crontab3.如果crontab文件不存在则创建sudotouch/etc/crontab上述操作完成之后就可以正常使用crontab啦二、crontab服务开启、关闭1.开启su…

    2022年10月22日
  • w7812三端稳压电路图_w7812三端稳压电路焊接与调试

    w7812三端稳压电路图_w7812三端稳压电路焊接与调试达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个 R 行 C 列的网格(R,C≤500),如下图所示。每个格点都是电线的接点,每个格子都包含一个电子元件。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。在旋转之后,它就可以连接另一条对角线的两个接点。电路板左上角的接点接入直流电源,右下角的接点接入飞行车的发动装置。达达发现因为

    2022年8月9日
  • BGP实验(2)

    BGP实验(2)

    2021年4月12日
  • 万字长文,带你深入理解AQS 队列同步器

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:zhenchao zhenchao.org/2018/08/24/java/juc-aqs/ Abstract…

    2021年6月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号