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

网站建设方案的写作方法万网域名怎么绑定网站

网站建设方案的写作方法,万网域名怎么绑定网站,现代化的中国风网站,广州seo推广运营专员目前搜索到的大部分代码都存在以下问题#xff1a; 复杂结构解析丢失解析后顺序错乱 所以自己写了一个#xff0c;经过不充分测试#xff0c;基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外#xff0c;还可以生成代码、sql转json等#xff0c;可…目前搜索到的大部分代码都存在以下问题 复杂结构解析丢失解析后顺序错乱 所以自己写了一个经过不充分测试基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外还可以生成代码、sql转json等可以去用一下用爱发电感谢支持 源码 import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.util.CollectionUtils; import org.yaml.snakeyaml.Yaml;import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** author Deng.Weiping* since 2023/11/28 13:57*/ Slf4j public class PropertiesUtil {/*** yaml 转 Properties** param input* return*/public static String castToProperties(String input) {MapString, Object propertiesMap new LinkedHashMap();MapString, Object yamlMap new Yaml().load(input);flattenMap(, yamlMap, propertiesMap);StringBuffer strBuff new StringBuffer();propertiesMap.forEach((key, value) - strBuff.append(key).append().append(value).append(StrUtil.LF));return strBuff.toString();}/*** Properties 转 Yaml** param input* return*/public static String castToYaml(String input) {try {MapString, Object properties readProperties(input);return properties2Yaml(properties);} catch (Exception e) {log.error(property 转 Yaml 转换失败, e);}return null;}private static MapString, Object readProperties(String input) throws IOException {MapString, Object propertiesMap new LinkedHashMap(); // 使用 LinkedHashMap 保证顺序for (String line : input.split(StrUtil.LF)) {if (StrUtil.isNotBlank(line)) {// 使用正则表达式解析每一行中的键值对Pattern pattern Pattern.compile(\\s*([^\\s]*)\\s*\\s*(.*)\\s*);Matcher matcher pattern.matcher(line);if (matcher.matches()) {String key matcher.group(1);String value matcher.group(2);propertiesMap.put(key, value);}}}return propertiesMap;}/*** 递归 Map 集合转为 Properties集合** param prefix* param yamlMap* param treeMap*/private static void flattenMap(String prefix, MapString, Object yamlMap, MapString, Object treeMap) {yamlMap.forEach((key, value) - {String fullKey prefix key;if (value instanceof LinkedHashMap) {flattenMap(fullKey ., (LinkedHashMap) value, treeMap);} else if (value instanceof ArrayList) {List values (ArrayList) value;for (int i 0; i values.size(); i) {String itemKey String.format(%s[%d], fullKey, i);Object itemValue values.get(i);if (itemValue instanceof String) {treeMap.put(itemKey, itemValue);} else {flattenMap(itemKey ., (LinkedHashMap) itemValue, treeMap);}}} else {treeMap.put(fullKey, value.toString());}});}/*** properties 格式转化为 yaml 格式字符串** param properties* return*/private static String properties2Yaml(MapString, Object properties) {if (CollUtil.isEmpty(properties)) {return null;}MapString, Object map parseToMap(properties);StringBuffer stringBuffer map2Yaml(map);return stringBuffer.toString();}/*** 递归解析为 LinkedHashMap** param propMap* return*/private static MapString, Object parseToMap(MapString, Object propMap) {MapString, Object resultMap new LinkedHashMap();try {if (CollectionUtils.isEmpty(propMap)) {return resultMap;}propMap.forEach((key, value) - {if (key.contains(.)) {String currentKey key.substring(0, key.indexOf(.));if (resultMap.get(currentKey) ! null) {return;}MapString, Object childMap getChildMap(propMap, currentKey);MapString, Object map parseToMap(childMap);resultMap.put(currentKey, map);} else {resultMap.put(key, value);}});} catch (Exception e) {e.printStackTrace();}return resultMap;}/*** 获取拥有相同父级节点的子节点** param propMap* param currentKey* return*/private static MapString, Object getChildMap(MapString, Object propMap, String currentKey) {MapString, Object childMap new LinkedHashMap();try {propMap.forEach((key, value) - {if (key.contains(currentKey .)) {key key.substring(key.indexOf(.) 1);childMap.put(key, value);}});} catch (Exception e) {e.printStackTrace();}return childMap;}/*** map集合转化为yaml格式字符串** param map* return*/public static StringBuffer map2Yaml(MapString, Object map) {//默认deep 为零表示不空格deep 每加一层缩进两个空格return map2Yaml(map, 0);}/*** 把Map集合转化为yaml格式 String字符串** param propMap map格式配置文件* param deep 树的层级默认deep 为零表示不空格deep 每加一层缩进两个空格* return*/private static StringBuffer map2Yaml(MapString, Object propMap, int deep) {StringBuffer yamlBuffer new StringBuffer();try {if (CollectionUtils.isEmpty(propMap)) {return yamlBuffer;}String space getSpace(deep);for (Map.EntryString, Object entry : propMap.entrySet()) {Object valObj entry.getValue();if (entry.getKey().contains([) entry.getKey().contains(])) {String key entry.getKey().substring(0, entry.getKey().indexOf([)) :;yamlBuffer.append(space key \n);propMap.forEach((itemKey, itemValue) - {if (itemKey.startsWith(key.substring(0, entry.getKey().indexOf([)))) {yamlBuffer.append(getSpace(deep 1) - );if (itemValue instanceof Map) {StringBuffer valStr map2Yaml((MapString, Object) itemValue, 0);String[] split valStr.toString().split(StrUtil.LF);for (int i 0; i split.length; i) {if (i 0) {yamlBuffer.append(getSpace(deep 2));}yamlBuffer.append(split[i]).append(StrUtil.LF);}} else {yamlBuffer.append(itemValue \n);}}});break;} else {String key space entry.getKey() :;if (valObj instanceof String) { //值为value 类型不用再继续遍历yamlBuffer.append(key valObj \n);} else if (valObj instanceof List) { //yaml List 集合格式yamlBuffer.append(key \n);ListString list (ListString) entry.getValue();String lSpace getSpace(deep 1);for (String str : list) {yamlBuffer.append(lSpace - str \n);}} else if (valObj instanceof Map) { //继续递归遍历MapString, Object valMap (MapString, Object) valObj;yamlBuffer.append(key \n);StringBuffer valStr map2Yaml(valMap, deep 1);yamlBuffer.append(valStr.toString());} else {yamlBuffer.append(key valObj \n);}}}} catch (Exception e) {e.printStackTrace();}return yamlBuffer;}/*** 获取缩进空格** param deep* return*/private static String getSpace(int deep) {StringBuffer buffer new StringBuffer();if (deep 0) {return ;}for (int i 0; i deep; i) {buffer.append( );}return buffer.toString();}}
http://www.hkea.cn/news/14527579/

相关文章:

  • 网站备案申请模板网络设计有哪些学校
  • 怎样如何做网站赚钱泰安外贸网站建设公司
  • 做木工的网站网站制作完成后应进入什么阶段
  • 网站免费正能量小说网站建设案例新闻
  • 如何做网站聚合页wordpress+跳转+微信支付宝
  • 电子商务网站的整体规划高端网站定制的案例
  • 自己做网站排版青海h5页面制作
  • asp网站安全如何做商城网站开发方案书
  • 抓好门户网站 建设丽江建设局网站
  • 人网站建站discuz论坛
  • 网站SEO的评价软件班级网站建设
  • 国外做的好的网站品牌建设表态发言
  • 怎么制作企业网站wap网址是什么意思
  • 做健康食品的网站网页设计师培训班招生
  • 网站推广策划的思路怎么做一张图片的网站
  • 网站收录最好的方法网上学设计哪个平台好
  • 网站负责人幕布照片网站如何运营赚钱
  • 赣州市住房和城乡建设局网站交互设计名词解释
  • 北京建设部网站 信息中心wordpress 模板挂马
  • 专做机票网站的软件公司律所网站建设管理制度
  • 网站建设需求量大做网站用asp好吗
  • 菏泽财富中心网站建设山东烟台城乡建设学校官方网站
  • 网络营销推广部做什么网站大图片优化
  • 12306的网站多少钱做的wordpress 微信plugin
  • 邢台高端网站建设价格ps个人网站的首页界面
  • 发帖网站有哪些重庆网站seo多少钱
  • 长沙企业如何建网站烟台网站建设力荐企汇互联见效付款
  • php网站开发课程pc网站如何做seo
  • 免费网站入口2021成都企业网站建设价格
  • 十大图片素材网站网站建设内容策略