如何将字符串(代表键值对)转换为Map

时间:2019-07-25 18:56:12

标签: string dictionary key-value

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

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

预期产量

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

2 个答案:

答案 0 :(得分: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);
}

}

答案 1 :(得分:1)

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);
    }

}