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;
}
}
一位map,二位map变成字符串后,再变成map的解析过程
原创
©著作权归作者所有:来自51CTO博客作者mb64a401e9f23d4的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:js 中的字符替换
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java map循环中remove
java map循环中remove
迭代 Java 迭代器 -
java map变成json字符串数组 javamap转json
java map变成json字符串数组 javamap转json
java map变成json字符串数组 java 将map转为json字符串 jar json System -
mysql 会缓存吗还是全写入文件
如果查询缓存大小设置为大于0,query_cache_type变量影响其工作方式。这个变量可以设置为下面的值: · 0或OFF将阻止缓存或查询缓存结果。 · 1或ON将允许缓存,以SELECT SQL_NO_
mysql 会缓存吗还是全写入文件 数据库 查询缓存 缓存 数据块