Java字符串转HashMap:将key=value形式的字符串转换为键值对

假设有一串字符串,以key='value'形式呈现,各内容项之间以逗号分隔,例如:

boardId='e01',sn='1',ip='192.168.76.2',netmask='255.255.255.255',productModel='E1',softwareVersion='1.0.0.1',hardwareVersion='2.0',fxsNumber='16',fxoNumber='16',e1Numbe='0',layout='layout',mac='aa:bb:cc:dd:ee:ff',supports=''

可以使用Java的HashMap来表示这串字符串,其中key为字符串中等号左边的部分,value为等号右边的部分。可以按照逗号分隔字符串,然后再按照等号分隔每个键值对。下面是一个示例代码:

import java.util.HashMap;

public class StringToMap {
    public static void main(String[] args) {
        String str = 'boardId='e01',sn='1',ip='192.168.76.2',netmask='255.255.255.255',productModel='E1',softwareVersion='1.0.0.1',hardwareVersion='2.0',fxsNumber='16',fxoNumber='16',e1Numbe='0',layout='layout',mac='aa:bb:cc:dd:ee:ff',supports=''';
        HashMap<String, String> map = stringToMap(str);
        System.out.println(map);
    }
    
    public static HashMap<String, String> stringToMap(String str) {
        HashMap<String, String> map = new HashMap<>();
        String[] pairs = str.split(',');
        for (String pair : pairs) {
            String[] keyValue = pair.split('=');
            if (keyValue.length == 2) {
                String key = keyValue[0].trim().replace(''', '');
                String value = keyValue[1].trim().replace(''', '');
                map.put(key, value);
            }
        }
        return map;
    }
}

运行以上代码,输出结果为:

{layout=layout, fxsNumber=16, mac=aa:bb:cc:dd:ee:ff, productModel=E1, sn=1, supports=, hardwareVersion=2.0, fxoNumber=16, netmask=255.255.255.255, softwareVersion=1.0.0.1, boardId=e01, ip=192.168.76.2, e1Numbe=0}

可以看到,字符串已经成功转换成了一个HashMap,其中每个键值对对应着原来字符串中的一个key-value形式。

代码解释:

  1. 使用split(',')方法将字符串按照逗号分隔成多个键值对。
  2. 遍历每个键值对,使用split('=') 方法将键值对按照等号分隔成key和value。
  3. 使用trim()方法去除key和value两端的空格,使用replace(''', '')方法去除key和value两端的单引号。
  4. 使用put()方法将key和value添加到HashMap中。

总结:

本文提供了一种将以key='value'形式呈现的字符串转换为HashMap的Java代码示例。该方法使用字符串分割和循环遍历,并将每个键值对存储到HashMap中。

Java字符串转HashMap:将key=value形式的字符串转换为键值对

原文地址: https://www.cveoy.top/t/topic/pdM1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录