当前位置: 首页 > news >正文

网站建设分金手指专业二九数字化营销方案

网站建设分金手指专业二九,数字化营销方案,wordpress系统是什么,可以做ps兼职的网站连续的KV的字符串,每个KV之间用","分隔,V中可嵌套KV的连续字符串结构,例如“ key1value1,key2value2,key3[key4value4,key5value5,key6[key7value7]],key8value8 请编写如下函数,给定字符串,输出嵌套结构的H…
连续的K=V的字符串,每个K=V之间用","分隔,V中可嵌套K=V的连续字符串结构,例如“
key1=value1,key2=value2,key3=[key4=value4,key5=value5,key6=[key7=value7]],key8=value8
请编写如下函数,给定字符串,输出嵌套结构的HashMap
HashMap<String, Object> parse(String input) {...
}

暂时没想出一个方法不用递归就能解析完的

解法1     只处理当前字符串第一个嵌套体位置的前面普通键值对,将第一个嵌套体内容递归处理,将第一个嵌套体后面剩余的字符串递归处理

 HashMap<String,Object> parse(String input){HashMap<String,Object> hashMap=new HashMap<>();char[] chars=input.toCharArray();int keyStart=0;int start=-1;//[位置int end=-1;//]位置int stack=0;//栈计数器for (int i=0;i<chars.length;i++){if(chars[i]=='['){stack++;if(stack==1){start=i+1;for(int j=i;j>0;j--){if(chars[j]==','){keyStart=j+1;break;}}}}else if(chars[i]==']'){if(stack==1){end=i;break;}stack--;}}String[] keyValueArray=new String[0];if(start>-1){//这里处理前半截if(keyStart-1>=0){keyValueArray=input.substring(0,keyStart-1).split(",");}//发现有[]  ,  递归处理String temp=input.substring(start,end);hashMap.put(input.substring(keyStart,start-2),parse(temp));//发现后面还有东西if(end<input.length()-1){hashMap.putAll( parse(input.substring(end+1)));}}else{//没有发现[]keyValueArray=input.split(",");}for(String kv:keyValueArray){if("".equals(kv.trim()))continue;String[] array=kv.split("=");hashMap.put(array[0],array[1]);}return hashMap;}

解法2   当前字符串中所有普通键值对进行处理,将所有遇到的嵌套体内容递归处理

    HashMap<String, Object> parse(String input) {HashMap<String, Object> hashMap = new HashMap<>();char[] chars = input.toCharArray();int kvStart = 0;//记录当前键值对的开始字段int keyStart = 0;int start = -1;//[位置int end = -1;//]位置int stack = 0;//栈计数器for (int i = 0; i < chars.length; i++) {if (chars[i] == ',' && stack == 0) {//stack=0,表示不在嵌套结构内,作为普通的键值对解析String[] array = input.substring(kvStart, i).split("=");hashMap.put(array[0], array[1]);kvStart = i + 1;}else if(i==chars.length-1&&chars[i] != ']'){//尾部处理:如果是普通的字符串,尾部肯定不是],作为普通键值对String[] array = input.substring(kvStart, i+1).split("=");hashMap.put(array[0], array[1]);}else if (chars[i] == '[') {stack++;if (stack == 1) {//第一次嵌套开始start = i + 1;//嵌套内容起始位置for (int j = i; j > 0; j--) {if (chars[j] == ',') {keyStart = j + 1;//当前嵌套体的key起始字符位置break;}}}} else if (chars[i] == ']') { //第一次嵌套结束if (stack == 1) {end = i;hashMap.put(input.substring(keyStart, start - 2), parse(input.substring(start, end)));i++;//跳过逗号kvStart = i + 1;//下个键值对的起始位置}stack--;}}return hashMap;}

http://www.yayakq.cn/news/885707/

相关文章:

  • 做会计需要了解的网站及软件wordpress只有一个主题
  • 天王手表官方网站做冠县梨园网站怎么做
  • 什么叫网站降权免费建立个人网站的视频
  • 广西建设网站网址多少钱wordpress添加footer
  • seo网站优化流程网站制作怎么做语音搜索框
  • 佛山网站建设慕枫哪里有免费的网站域名
  • 销售型网站怎么做的制作网页改颜色
  • 上海网站设计公司网网站建设是怎么挣钱的
  • 容城网站建设电器 东莞网站建设
  • 个人网站怎么设计深圳网站建设clh
  • 做旅游网站网站上做扫一扫
  • 企业如何做网站网站零基础学电脑培训班
  • 重庆微网站临沂酒店建设信息网站
  • 西安成品网站建设北京亦庄做网站公司
  • 网站建设图书网站模板下载后怎么使用
  • 常州外贸网站建设公司58建筑网官网
  • 双语网站方法广西哪里有网站建设
  • 怎么自己建立网站及建立网站方法品牌创意设计公司
  • 有哪些可以做调查的网站微信群网站有哪些
  • 罗定网站建设网站流量图怎么做
  • 郑州的建设网站有哪些手续费wordpress资源站源码
  • 免费看片网站网站建设单子
  • 永春网站建设如何使用表格做网站
  • 慈溪网站建设网站评测的作用
  • 用jsp做的网站首页手机怎么修改网页内容
  • 心悦dnf免做卡网站做网站商城的小图标软件
  • 建设公司的网站制作上海做公司网站的公司
  • 企业网站建设市场前景北京的建筑公司有哪些
  • 嘉兴做网站涪陵网站建设公司
  • 刚做的网站为什么百度搜不出来网站建设武清