Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我正在使用toString()方法将映射转换为字符串。有没有办法将字符串转换回地图? Map inputMap=newhashmap(); inputMap.put(“a”、“abc”); inputMap.put(“b”、“bcd”); inputMap.put(“c”、“cde”); HashMap subMap=新的HashMap(); 子映射put(“x”、“xyz”); 子映射put(“z”、“klm”) inputMap.put(“d”,subMap); 字符串输出=inputMap.toString(); 系统输出打印项次(输出); {a=abc,b=bcd,c=cde,d={x=xyz,z=klm}_Java_String_Hashmap_Maps - Fatal编程技术网

Java 我正在使用toString()方法将映射转换为字符串。有没有办法将字符串转换回地图? Map inputMap=newhashmap(); inputMap.put(“a”、“abc”); inputMap.put(“b”、“bcd”); inputMap.put(“c”、“cde”); HashMap subMap=新的HashMap(); 子映射put(“x”、“xyz”); 子映射put(“z”、“klm”) inputMap.put(“d”,subMap); 字符串输出=inputMap.toString(); 系统输出打印项次(输出); {a=abc,b=bcd,c=cde,d={x=xyz,z=klm}

Java 我正在使用toString()方法将映射转换为字符串。有没有办法将字符串转换回地图? Map inputMap=newhashmap(); inputMap.put(“a”、“abc”); inputMap.put(“b”、“bcd”); inputMap.put(“c”、“cde”); HashMap subMap=新的HashMap(); 子映射put(“x”、“xyz”); 子映射put(“z”、“klm”) inputMap.put(“d”,subMap); 字符串输出=inputMap.toString(); 系统输出打印项次(输出); {a=abc,b=bcd,c=cde,d={x=xyz,z=klm},java,string,hashmap,maps,Java,String,Hashmap,Maps,输出为:{a=abc,b=bcd,c=cde,d={x=xyz,z=klm} 如何将输出转换回映射 提前谢谢 有没有办法将字符串转换回地图 一般来说,没有 Map.toString()实现依赖于K.toString()和V.toString()实现。这些是不可逆的,这意味着Map实现也不能是可逆的 即使在Map情况下,渲染贴图也不会使用任何形式的转义来处理边缘情况。。。类似于包含逗号、等号或花括号的键或值 在受限情况下1,您可以实现自己的解析器,也可以使用此处描述的方法之一: 二, 但是,如

输出为:{a=abc,b=bcd,c=cde,d={x=xyz,z=klm}

如何将输出转换回映射

提前谢谢

有没有办法将字符串转换回地图

一般来说,没有

  • Map.toString()
    实现依赖于
    K.toString()
    V.toString()
    实现。这些是不可逆的,这意味着
    Map
    实现也不能是可逆的

  • 即使在
    Map
    情况下,渲染贴图也不会使用任何形式的转义来处理边缘情况。。。类似于包含逗号、等号或花括号的键或值

  • 在受限情况下1,您可以实现自己的解析器,也可以使用此处描述的方法之一:

    • 二,
    但是,如果您还需要可逆的转换,那么使用
    toString()
    是个坏主意。
    toString()
    方法契约及其实现不是为此目的而设计的。它们主要设计用于调试


    1-例如,如果您可以假设
    K
    V
    String
    ,则不存在
    null
    键或值,并且它们都不包含笨拙的字符

    2-注意:使用
    split
    等的简单解决方案通常无法处理嵌套贴图

    有没有办法将字符串转换回地图

    一般来说,没有

  • Map.toString()
    实现依赖于
    K.toString()
    V.toString()
    实现。这些是不可逆的,这意味着
    Map
    实现也不能是可逆的

  • 即使在
    Map
    情况下,渲染贴图也不会使用任何形式的转义来处理边缘情况。。。类似于包含逗号、等号或花括号的键或值

  • 在受限情况下1,您可以实现自己的解析器,也可以使用此处描述的方法之一:

    • 二,
    但是,如果您还需要可逆的转换,那么使用
    toString()
    是个坏主意。
    toString()
    方法契约及其实现不是为此目的而设计的。它们主要设计用于调试


    1-例如,如果您可以假设
    K
    V
    String
    ,则不存在
    null
    键或值,并且它们都不包含笨拙的字符


    2-注意:使用
    split
    等的简单解决方案通常无法处理嵌套映射。

    没有预定义的Java方法,但您可以使用自己的逻辑进行编码。 在这里我分享我的工作例子您可以根据需要更改代码

    Map<String,Object> inputMap=new HashMap<String,Object>();
    
        inputMap.put("a","abc");
        inputMap.put("b","bcd");
        inputMap.put("c","cde");
    
     HashMap<String,String> subMap=new HashMap<String,String>();
       subMap.put("x","xyz");
        subMap.put("z","klm")
    
        inputMap.put("d",subMap);
    
    
    
    
    String output=inputMap.toString();
    System.out.println(output);
    
    
    {a=abc,b=bcd,c=cde,d={x=xyz,z=klm}}
    
    String output=“{a=abc,b=bcd,c=cde,d={x=xyz,z=klm}”;
    if(output.indexOf(“{”)==0&&output.lastIndexOf(“}”)==output.length()-1){
    output=output.substring(1,output.length()-1);
    HashMap convertedMap=转换(输出);
    for(HashMap.Entry值:convertedMap.entrySet()){
    如果(value.getValue().indexOf(“{”)==0&&value.getValue().lastIndexOf(“}”)==value.getValue().length()-1){
    字符串值WithBracket=value.getValue();
    convertedMap.remove(值);
    convertedMap=转换(带括号的值);
    }
    }
    }
    公共静态哈希映射转换(字符串str){
    HashMap=newHashMap();
    String[]tokens=str.split(“,(?![^{]*\})”;
    for(字符串标记:标记){
    字符串[]val=token.split(“=(?![^{)]*\\})”;
    
    对于(inti=0;i,没有预定义的Java方法,但您可以使用自己的逻辑进行编码。 我在这里分享我的工作示例。您可以根据需要更改代码。

    Map<String,Object> inputMap=new HashMap<String,Object>();
    
        inputMap.put("a","abc");
        inputMap.put("b","bcd");
        inputMap.put("c","cde");
    
     HashMap<String,String> subMap=new HashMap<String,String>();
       subMap.put("x","xyz");
        subMap.put("z","klm")
    
        inputMap.put("d",subMap);
    
    
    
    
    String output=inputMap.toString();
    System.out.println(output);
    
    
    {a=abc,b=bcd,c=cde,d={x=xyz,z=klm}}
    
    String output=“{a=abc,b=bcd,c=cde,d={x=xyz,z=klm}”;
    if(output.indexOf(“{”)==0&&output.lastIndexOf(“}”)==output.length()-1){
    output=output.substring(1,output.length()-1);
    HashMap convertedMap=转换(输出);
    for(HashMap.Entry值:convertedMap.entrySet()){
    如果(value.getValue().indexOf(“{”)==0&&value.getValue().lastIndexOf(“}”)==value.getValue().length()-1){
    字符串值WithBracket=value.getValue();
    convertedMap.remove(值);
    convertedMap=转换(带括号的值);
    }
    }
    }
    公共静态哈希映射转换(字符串str){
    HashMap=newHashMap();
    String[]tokens=str.split(“,(?![^{]*\})”;
    for(字符串标记:标记){
    字符串[]val=token.split(“=(?![^{)]*\\})”;
    for(int i=0;i尝试使用clear()方法的可能副本。它从调用映射中删除所有键/值对。以下是一个解决方案:尝试使用clear()方法的可能副本。它从调用映射中删除所有键/值对。以下是一个解决方案: