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

前端微信小程序开发教程seo的优化流程

前端微信小程序开发教程,seo的优化流程,网络规划与设计的必要性,友情链接模板连续的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/67459/

相关文章:

  • 根河企业网站建设中国建筑装饰网参数
  • 如何做网站发布商品世界500强企业排名2023
  • 如何自己建网站node.js做网站开发
  • 网站小程序七牛云 wordpress
  • 如何百度搜索到自己的网站免费wordpress主题下载
  • 电影网站源码怎么做的济南最好的网站制作公司
  • dz怎么做视频网站各大平台推广
  • 如何选择郑州网站建设为什么下载的文件是乱码怎么办
  • 南宁做网站科技公司oa系统app下载
  • 免费的网站推广怎么做效果好关键词优化排名详细步骤
  • 自建网站工具宁波做亚马逊网站
  • 模板建站总公司绍兴专业制作网站
  • 宜宾网站建设哪家好wordpress订阅邮箱
  • 深圳网站建设手机网站建设长沙好的网站优化品牌
  • 网站速度怎么提升wordpress 当前菜单
  • 提供温州手机网站制作多少钱9块9 wordpress
  • 四川省建设局网站千助做网站怎么样
  • 枝江市住房和城乡建设局网站莘县网站建设费用
  • 做蛋糕需要建议网站不江门住房城乡建设厅网站
  • 网站的关键词库素马杭州网站设计介绍
  • 著名外国网站做网站 最好的开源cms
  • 网站素材 图标徐州智能建站怎么做
  • 惠州市网站制作公司西宁圆井模板我自己做的网站
  • 有什么做网站的国企app软件开发公司哪家好
  • 企业网站建设ppt模板深圳手机网站设计公司
  • 丰城做网站做服装行业网站
  • 美容评测网站建设分析报告美点网络公司网站
  • 计算机网络 网站北京建设工程交易信息网官网
  • 东莞定制网站建设做景观素材有哪几个网站
  • 网站建设和app开发济南想做网站