【问题标题】:How to convert a string (representing key-value pairs) to Map如何将字符串(表示键值对)转换为 Map
【发布时间】:2019-07-25 18:56:12
【问题描述】:

如何将字符串转换为地图:

映射 m = convert("A=4 H=X PO=87"); // 什么是转换? System.err.println(m.getClass().getSimpleName()+m);

预期输出

HashMap{A=4, H=X, PO=87}

【问题讨论】:

    标签: string dictionary key-value


    【解决方案1】:

    没有必要重新发明轮子。 Google Guava 库提供了 Splitter 类。

    以下是您如何将它与一些测试代码一起使用:

    包 com.sandbox;

    导入 com.google.common.base.Splitter; 导入 org.junit.Test;

    导入 java.util.Map;

    导入静态 org.junit.Assert.assertEquals;

    公共类 SandboxTest {

    @Test
    public void testQuestionInput() {
        Map<String, String> map = splitToMap("A=4 H=X PO=87");
        assertEquals("4", map.get("A"));
        assertEquals("X", map.get("H"));
        assertEquals("87", map.get("PO"));
    }
    
    private Map<String, String> splitToMap(String in) {
        return Splitter.on(" ").withKeyValueSeparator("=").split(in);
    }
    

    }

    【讨论】:

    • 谢谢,有帮助
    【解决方案2】:
    package com.sandbox;
    
    import com.google.common.base.Splitter;
    import org.junit.Test;
    
    import java.util.Map;
    
    import static org.junit.Assert.assertEquals;
    
    public class SandboxTest {
    
        @Test
        public void testQuestionInput() {
            Map<String, String> map = splitToMap("A=4 H=X PO=87");
            assertEquals("4", map.get("A"));
            assertEquals("X", map.get("H"));
            assertEquals("87", map.get("PO"));
        }
    
        private Map<String, String> splitToMap(String in) {
            return Splitter.on(" ").withKeyValueSeparator("=").split(in);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2015-12-20
      相关资源
      最近更新 更多