`
jackroomage
  • 浏览: 1215067 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

一位map,二位map变成字符串后,再变成map的解析过程

 
阅读更多

public class G
{
    public static void main(String[] args){
       
         Map map=new HashMap();
         map.put("a", 1);
         map.put("b", 2);
         map.put("c", 33);
         map.put("d", "");
         map.put("","");
         
         Map map2=new HashMap();
         map2.put("a", map);
         map2.put("b", map);
         map2.put("", map);
         
         String m1=map.toString();
         String m= map2.toString();
        
         System.out.println("原始的一位map:"+m1);
         System.out.println("原始的二位map:"+m);
         System.out.println("-----------------------------------------------------");
        
//        字符串中有一个map的输出
         System.out.println(mp1(m1)); 
        
//        字符串中有两个map的输出
         System.out.println(mp2(m));
    }
   
    public static Map mp2(String m){
        ArrayList al=new ArrayList();
        ArrayList ak=new ArrayList();
        ArrayList aa=new ArrayList();   
        ArrayList ab=new ArrayList();
        ArrayList ac=new ArrayList();       
//放一位里面的map值       
         HashMap hm=new HashMap();   
         String[] sar=m.split("},");
         for(String s:sar){
             al.add(s);
         }
        String sm1=al.get(0).toString();
        String stt="=\\{";
        String[] smm1=sm1.split(stt);
        for(String ss:smm1){
            ak.add(ss);
        }
         String[] ssw=ak.get(1).toString().replace(" ", "").split(",");
         for(String stst:ssw){
         aa.add(stst);
         }
         for(int i=0;i<aa.size();i++){
        if(aa.get(i).toString().length()==1){
            hm.put("", "");
        }else{
             String[] strs=aa.get(i).toString().split("=",2);
             for(String st:strs){
                ab.add(st);
                }
             }
         }
         for(int i=0;i<ab.size();i++){
             if(i%2==0){
                 hm.put(ab.get(i), ab.get(i+1));
             }
         }
    //  二位map数组        
         String syiwei=hm.toString();
         String[] erwei=m.replace(syiwei, "").replace("{", "").replace("}", "").replace(" ", "").split(",");
         ArrayList alist=new ArrayList();
         ArrayList alistb=new ArrayList();
         HashMap hmm= new HashMap();
         for(String stmap:erwei){
             alist.add(stmap);
            }
              for(int i=0;i<alist.size();i++){
             if(alist.get(i).toString().length()==1){
                 hmm.put("", hm);
             }else{
                  String[] strs=alist.get(i).toString().split("=",2);
                  for(String st:strs){
                     alistb.add(st);
                     }
                  }
              }
              for(int i=0;i<alistb.size();i++){
                  if(i%2==0){
                      hmm.put(alistb.get(i), hm);
                  }
              }   
             return hmm;
    }
   
public static Map mp1(String m){
         String[] erwei=m.replace("{", "").replace("}", "").replace(" ", "").split(",");
         ArrayList alist=new ArrayList();
         ArrayList alistb=new ArrayList();
         HashMap hmm= new HashMap();
         for(String stmap:erwei){
             alist.add(stmap);
            }
 
              for(int i=0;i<alist.size();i++){
             if(alist.get(i).toString().length()==1){
                 hmm.put("", "");
             }else{
                  String[] strs=alist.get(i).toString().split("=",2);
                  for(String st:strs){
                     alistb.add(st);
                     }
                  }
              }
              for(int i=0;i<alistb.size();i++){
                  if(i%2==0){
                      hmm.put(alistb.get(i), alistb.get(i+1));
                  }
              }   
             return hmm;
    }
}

  • G.7z (1.1 KB)
  • 下载次数: 2
分享到:
评论

相关推荐

    关于字符串包含的问题

    【字符串包含问题】是计算机科学中常见的字符串处理问题,主要关注如何高效地判断一个较短的字符串(子串)是否完全包含在另一个较长的字符串(主串)中。以下是几种解决此类问题的方法: ### 第一节:基础方法 1....

    字符串比较

    遍历第一个字符串时记录字符出现次数,再遍历第二个字符串时更新计数,最后计算相同的字符数和不同的字符数。 为了提高效率,可以考虑使用位运算。对于ASCII字符串,每个字符可以用一个字节表示,因此可以使用一个...

    Java遍历json字符串取值的实例

    最后,文章中还有一个名为`operStr`的方法,该方法作用是解析JSON字符串并根据其中的数据构建一个Map列表。在这个方法中,通过双重遍历JSON字符串中的数组和对象,根据特定的条件和转换逻辑,将解析得到的数据存储到...

    字符串文件http密码资源文件openoffice图片等工具等

    CompressStringUtil压缩字符串与解压缩字符串 DESUtil加解密 DigestUtil加解密 Dimension2CodeUtil二维码生成与解析 Md5Util加解密 Pinyin4jUtil中文转拼音、中文转拼音首字母、中文转字节序列 PwdUtils生成4-32位的...

    python3.x 将byte转成字符串的方法

    字节串是8位字节的序列,通常用于二进制数据的表示,而字符串则是人类可读的字符序列。 在Python中,字节串与字符串的主要区别在于:字节串包含了原始的二进制数据,通常以字节为单位;而字符串是文本的抽象,其...

    Python字符串转换成浮点数函数分享

    #### 二、使用`map`和`reduce`方法实现字符串到浮点数的转换 在本示例中,我们将使用Python标准库中的`map`和`reduce`函数来实现字符串到浮点数的转换。这两个函数在处理列表和其他可迭代对象时非常有用。 - **`...

    8583报文解析框架Simple8583.zip

    CHAR(asc编码,直接使用字符串的getBytes(ENCODING)方法获取字节数组)  BINARY(二进制编码,在打包时将8位01值组装为一个字节), NUMERIC(BCD编码,即8421码), ...

    Base64 编解码工具

    为了确保编码后的字符串在传输过程中不会因换行或空格产生问题,通常会在末尾添加一个或多个等号(`=`)作为填充,以使编码后的长度是4的倍数。等号不携带任何信息,仅用作校验。 在本"Base64编码解码工具"中,提供...

    Hive函数大全1.0

    * 字符串转换成 map 函数(str_to_map) * base64 解码函数(unbase64) * 字符串转大写函数(upper,ucase) * 字符串转小写函数(lower,lcase) * 去空格函数(trim) * 左边去空格函数(ltrim) * 右边去空格函数(rtrim) * ...

    JS实现获取数字的各位数的数字

    2. **遍历字符串**:一旦我们有了数字的字符串形式,就可以通过遍历字符串来获取每一位的数字。可以使用`for`循环或者`Array.prototype.map()`等数组方法: - **For循环**: ```javascript for (let i = 0; i ; i...

    Python中的特殊语法:filter、map、reduce、lambda介绍

    这段代码首先用`:split()`拆分字符串`l`,然后用`strip()`去除空白字符,接着通过`filter()`筛选掉空字符串,最后得到一个去除了空白和空字符串的列表。 总的来说,`filter()`, `map()`, `reduce()`和`lambda`是...

    numerological-math:数位求和,字符串值计算等的命理方法

    传递true作为第二个参数将返回一个表示映射的字符串映射。 numerological . value ( 'Seth' , true ) ; // 's = 1 --&gt; 1 + (e = 5) = 6 --&gt; 6 + (t = 2) = 8 --&gt; 8 + (h = 8) = 16 --&gt; 1 + 6 = 7' ...

    C++哈夫曼编码与译码课程设计实现源代码

    因此,每个字符的编码就是从根到对应叶子节点的路径表示,通常用二进制串表示。 3. **编码过程**: - 构建哈夫曼树:根据输入字符及其出现频率生成哈夫曼树。 - 生成编码表:遍历哈夫曼树,记录每个字符的路径,...

    java中把数字转化为人民币大写形式

    小数点后第一位代表角,第二位代表分。同样,根据规则,小数点后如果有0,也需要进行特定处理,比如0.05人民币应表示为伍分,而0.00则不显示“零”。 在实际项目中,这个功能可能会被封装成一个独立的类或方法,以...

    Swift Coding Challenges .pdf

    文档中列出的挑战包括针对字符串的操作,如判断字符串中的字符是否唯一、检测字符串是否为回文、比较两个字符串是否包含相同的字符、判断一个字符串是否包含另一个字符串、计算字符出现的次数、从字符串中移除重复...

    2021年第一次蓝桥杯+python的 stema 试题.docx

    1. **输入**:首先通过 `input()` 函数读取一个字符串,再通过 `input()` 函数读取一个字符。 2. **处理**:使用 `in` 关键字检查字符是否存在于字符串中。 3. **输出**:根据检查结果输出 `True` 或 `False`。 **...

    华为OD机试C卷- 快速人名查找(Java & JS & Python).md-私信看全套OD代码及解析

    再给定一个字符串,要求实现快速人名查找功能,找出那些名字中的每个单词的连续前几位能够组成给定字符串的名字。需要注意的是,每个名字中的所有单词都必须被用到至少一次。 #### 输入描述 - 第一行输入包含多个...

    java面试宝典很全面

    此示例演示了如何使用 `indexOf` 方法来查找一个子字符串在另一个字符串中的位置。 通过以上内容的总结与分析,我们可以看到 Java 面试宝典覆盖了 Java 基础知识、常见面试题目以及一些进阶知识点,旨在帮助求职者...

Global site tag (gtag.js) - Google Analytics