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

闵行 网站建设公司seo网站设计网页单页设计

闵行 网站建设公司,seo网站设计网页单页设计,wordpress百度xml地图,安徽建海建设工程有限公司网站文章目录 数据库表设计五层分类系统表设计代码思路详解类概述核心方法详解1. processString(String input) 方法2. createNo(String input, boolean peerNode) 方法3. isParent(String parentNo, String sonNo) 方法 编号系统设计使用场景推测代码特点可能的使用示例 NoProcess…

文章目录

  • 数据库表设计五层分类系统表设计
    • 代码思路详解
    • 类概述
    • 核心方法详解
      • 1. `processString(String input)` 方法
      • 2. `createNo(String input, boolean peerNode)` 方法
      • 3. `isParent(String parentNo, String sonNo)` 方法
    • 编号系统设计
    • 使用场景推测
    • 代码特点
    • 可能的使用示例
  • `NoProcessing.processString(n.getCategoryNo()).length()/3-1` 详细解析
    • 代码分解
    • 类概述
    • 核心方法详解
      • 1. `processString(String input)` 方法
      • 2. `createNo(String input, boolean peerNode)` 方法
      • 3. `isParent(String parentNo, String sonNo)` 方法
    • 编号系统设计
    • 使用场景推测
    • 代码特点

数据库表设计五层分类系统表设计

首先表中有一个15位的编号如下:

层级索引示例编号处理后长度计算过程结果
1010000000000000033/3-1=00
2110000100000000066/3-1=11
3210000100100000099/3-1=22
431000010010010001212/3-1=33
541000010010010011515/3-1=44

处理工具类:


/*** @ClassName NoProcessing.java* @Description 编号创建类*/
public class NoProcessing {public static void main(String[] args) {
//        String input = "100001009001001";
//        String processedString = createNo(input,true);
//        System.out.println(processedString);String sonNo = "100001001001000";String parentNo = "100001001000000";System.out.println(isParent(parentNo,sonNo));}/**** @description 处理补全编号,所有编号都是15位,共5层,每层关系如下:* 第一层:100000000000000* 第二层:100001000000000* 第三层:100001001000000* 第四层:100001001001000* 第五层:100001001001001* 处理后100000000000000后结果为100* @param input* @return: java.lang.String*/public static String processString(String input) {int step = input.length() / 3;for (int i =0;i<step;i++ ){String targetString = input.substring(input.length()-3,input.length());if ("000".equals(targetString)){input = input.substring(0,input.length()-3);}else {break;}}return input;}/**** @description 生产层级编号* @param input 输入编号* @param peerNode 是否有下属节点* @return* @return: java.lang.String*/public static String createNo(String input,boolean peerNode) {int step = input.length() / 3;int supplement = 0;for (int i =0;i<step;i++ ){String targetString = input.substring(input.length()-3,input.length());if ("000".equals(targetString)){input = input.substring(0,input.length()-3);supplement++;}else {break;}}if (peerNode){input = String.valueOf(Long.valueOf(input) + 1L);for (int i =0;i<supplement;i++ ){input = input+"000";}}else {input = String.valueOf(Long.valueOf(input+"001"));for (int i =0;i<supplement-1;i++ ){input = input+"000";}}return input;}/**** @description 是否是其子类** @param parentNo 父编号* @param sonNo 子编号* @return* @return: java.lang.Boolean*/public static Boolean isParent(String parentNo,String sonNo) {parentNo = processString(parentNo);return sonNo.startsWith(parentNo);}}

代码思路详解

这个类是一个编号处理工具类,主要用于处理15位长度的层级编号系统。下面我将详细解析每个方法和类的整体功能。

类概述

NoProcessing 类提供以下主要功能:

  1. 处理层级编号字符串

  2. 创建新的层级编号

  3. 判断父子编号关系

核心方法详解

1. processString(String input) 方法

功能:去除编号末尾连续的"000"部分,提取有效编号。

处理逻辑

  1. 计算编号的步长(总长度/3)

    • 因为编号是15位,每层用3位表示,所以step=5
  2. 从末尾开始检查每3位一组:

    • 如果是"000"则去除

    • 遇到非"000"则停止

  3. 返回处理后的字符串

示例

java

复制

输入 “100001001000000” → 处理过程:

  1. 检查最后3位"000" → 去除 → “100001001000”
  2. 检查新的最后3位"000" → 去除 → “100001001”
  3. 检查"001" → 不是"000" → 停止
    返回 “100001001”

使用场景:获取编号的有效部分,去除末尾的占位"000"

2. createNo(String input, boolean peerNode) 方法

功能:根据现有编号创建新的层级编号。

参数

  • input:基础编号

  • peerNode:是否创建同级节点(true)还是子级节点(false)

处理逻辑

  1. 先像processString一样去除末尾的"000"

  2. 根据peerNode参数决定如何生成新编号:

    • 同级节点(peerNode=true):当前数字+1,然后补回去除的"000"

    • 子级节点(peerNode=false):当前数字末尾+“001”,然后补回(去除的"000"数量-1)

示例

java

复制

// 创建同级节点
createNo(“100001001000000”, true) →

  1. 处理得到"100001001"
  2. 100001001 + 1 = 100001002
  3. 补回2组"000" → “100001002000000”

// 创建子级节点
createNo(“100001001000000”, false) →

  1. 处理得到"100001001"
  2. 添加"001" → “100001001001”
  3. 补回1组"000" → “100001001001000”

3. isParent(String parentNo, String sonNo) 方法

功能:判断一个编号是否是另一个编号的父级。

处理逻辑

  1. 先处理父编号去除末尾"000"

  2. 检查子编号是否以处理后的父编号开头

示例

java

复制

isParent(“100001000000000”, “100001001000000”) →

  1. 处理父编号 → “100001”
  2. 检查子编号是否以"100001"开头 → true

编号系统设计

从代码可以看出这是一个5层15位的编号系统:

  • 每层用3位数字表示

  • 层级关系通过数字前缀表示

  • "000"表示该层级无具体值

编号示例

复制

第一层:100000000000000 → “100”…
第二层:100001000000000 → “100”+“001”…
第三层:100001001000000 → “100”+“001”+“001”…
第四层:100001001001000 → “100”+“001”+“001”+“001”…
第五层:100001001001001 → “100”+“001”+“001”+“001”+“001”

使用场景推测

这类编号系统常用于:

  • 商品分类体系

  • 组织架构编码

  • 地区编码

  • 任何需要多层级表示的编码系统

代码特点

  1. 防御性处理:方法都考虑了字符串操作的安全问题

  2. 数值处理:使用Long处理大数字

  3. 层级清晰:严格的3位一组表示层级

  4. 灵活性:支持同级和子级节点创建

可能的使用示例

java

复制

// 1. 处理现有编号
String processed = NoProcessing.processString(“100001001000000”); // 返回"100001001"

// 2. 创建子分类编号
String newChild = NoProcessing.createNo(“100001000000000”, false); // 返回"100001001000000"

// 3. 检查分类关系
boolean isParent = NoProcessing.isParent(“100000000000000”, “100001000000000”); // 返回true

这个工具类为层级编号系统提供了完整的创建、处理和验证功能。

NoProcessing.processString(n.getCategoryNo()).length()/3-1))

修改

NoProcessing.processString(n.getCategoryNo()).length()/3-1 详细解析

这段代码是用来计算分类编号的层级深度,下面我将详细解释它的每个部分和整体功能。

代码分解

这个类是一个编号处理工具类,主要用于处理15位长度的层级编号系统。下面我将详细解析每个方法和类的整体功能。

类概述

NoProcessing 类提供以下主要功能:

  1. 处理层级编号字符串

  2. 创建新的层级编号

  3. 判断父子编号关系

核心方法详解

1. processString(String input) 方法

功能:去除编号末尾连续的"000"部分,提取有效编号。

处理逻辑

  1. 计算编号的步长(总长度/3)

    • 因为编号是15位,每层用3位表示,所以step=5
  2. 从末尾开始检查每3位一组:

    • 如果是"000"则去除

    • 遇到非"000"则停止

  3. 返回处理后的字符串

示例

java

复制

输入 “100001001000000” → 处理过程:

  1. 检查最后3位"000" → 去除 → “100001001000”
  2. 检查新的最后3位"000" → 去除 → “100001001”
  3. 检查"001" → 不是"000" → 停止
    返回 “100001001”

使用场景:获取编号的有效部分,去除末尾的占位"000"

2. createNo(String input, boolean peerNode) 方法

功能:根据现有编号创建新的层级编号。

参数

  • input:基础编号

  • peerNode:是否创建同级节点(true)还是子级节点(false)

处理逻辑

  1. 先像processString一样去除末尾的"000"

  2. 根据peerNode参数决定如何生成新编号:

    • 同级节点(peerNode=true):当前数字+1,然后补回去除的"000"

    • 子级节点(peerNode=false):当前数字末尾+“001”,然后补回(去除的"000"数量-1)

示例

java

复制

// 创建同级节点
createNo(“100001001000000”, true) →

  1. 处理得到"100001001"
  2. 100001001 + 1 = 100001002
  3. 补回2组"000" → “100001002000000”

// 创建子级节点
createNo(“100001001000000”, false) →

  1. 处理得到"100001001"
  2. 添加"001" → “100001001001”
  3. 补回1组"000" → “100001001001000”

3. isParent(String parentNo, String sonNo) 方法

功能:判断一个编号是否是另一个编号的父级。

处理逻辑

  1. 先处理父编号去除末尾"000"

  2. 检查子编号是否以处理后的父编号开头

示例

java

复制

isParent(“100001000000000”, “100001001000000”) →

  1. 处理父编号 → “100001”
  2. 检查子编号是否以"100001"开头 → true

编号系统设计

从代码可以看出这是一个5层15位的编号系统:

  • 每层用3位数字表示

  • 层级关系通过数字前缀表示

  • "000"表示该层级无具体值

编号示例

复制

第一层:100000000000000 → “100”…
第二层:100001000000000 → “100”+“001”…
第三层:100001001000000 → “100”+“001”+“001”…
第四层:100001001001000 → “100”+“001”+“001”+“001”…
第五层:100001001001001 → “100”+“001”+“001”+“001”+“001”

使用场景推测

这类编号系统常用于:

  • 商品分类体系

  • 组织架构编码

  • 地区编码

  • 任何需要多层级表示的编码系统

代码特点

  1. 防御性处理:方法都考虑了字符串操作的安全问题

  2. 数值处理:使用Long处理大数字

  3. 层级清晰:严格的3位一组表示层级

  4. 灵活性:支持同级和子级节点创建

http://www.dtcms.com/a/578830.html

相关文章:

  • 【复习】计网每日一题1105大题---ARP、NAT、路由器、IP数据报、冲突域、广播域、100BASE-F、10BASE-T
  • 黄江东莞网站建设部队网站设计
  • 网站子域名 更换优化营商环境建议
  • DWG选型指南:VJMAP原生兼容与GISBox轻量化发布的优劣势对比
  • Nginx的使用教程以及用途
  • 个人网站开发项目报告什么是网站
  • 呼伦贝尔寰宇网站建设网站界面设计方案
  • 青少年机器人技术等级考试理论综合试卷(一级)2018年12月
  • SnapShot备份还原丨系统引导修复
  • 典型岛屿问题全解析:DFS 与 BFS 的思路与代码实现(ACM输入输出)
  • 欢迎访问陕西省交通建设集团公司网站阿里巴巴网站优化怎么做
  • 山东网站建设企业公司修改wordpress文章发布时间
  • 浙江汉农建设有限公司网站wordpress和dede区别
  • 硬件工程师-基础知识电阻(三)
  • 杭州web前端开发目前流行的CSS样式库
  • 详解不同场景下的服务降级手段
  • BuildingAI 充值中心页面详细开发计划
  • 网站封了给个能用的朗读者外国人做的汉字网站
  • C语言中的sizeof和strlen
  • Y迷宫刺激器 MG-3S型Y迷宫刺激器
  • 弹幕网站开发代码公众号网页源码
  • 微信外链网站开发网络推广运营推广
  • 矩阵的运算(二)
  • 专业的单位网站开发开发企业管理网站建设
  • 泰安网站建设制作电话号码机械设备怎样做网络推广
  • 移动硬盘灯亮但不读取无法识别的解决方法
  • 制作销售网站有哪些规划一个电子商务网站
  • flash+xml地图网站奉贤做网站价格
  • 微信小程序开发:详细解读onLoad生命周期函数
  • 太平洋手机上海网站制作 优化