Java序号断号重连

文章描述了一个Java方法,用于处理树状结构的序号列表,当列表中缺失某个序号时,通过某种算法自动补全并重新排序输出完整的序列。
摘要由CSDN通过智能技术生成

需求:树结构,例如序号,

"1", "1.1","1.3", "2", "2.1", "2.2", "3", "3.1", "3.2"

上述序号中,缺失1.2,要求调用某个方法,把1.2补回,重新排序

public static List<String> newSortPlanNumber(List<String> currentNumberList){
        List<String> newSortList = new ArrayList<>();
        int firstNumber = 0;
        int secondNumber = 0;
        int thirdNumber = 0;
        int fourthNumber = 0;
        int fifthNumber = 0;
        int sixthNumber = 0;
        int seventhNumber = 0;
        for(int i=0;i<currentNumberList.size();i++){
            String str = currentNumberList.get(i);
            String[] strLength = str.split("\\.");
            if(strLength.length == 1){
                firstNumber = firstNumber+1;
                secondNumber = 0;
                thirdNumber = 0;
                fourthNumber = 0;
                fifthNumber = 0;
                sixthNumber = 0;
                seventhNumber = 0;
            }
            if(strLength.length == 2){
                secondNumber = secondNumber+1;
                thirdNumber = 0;
                fourthNumber = 0;
                fifthNumber = 0;
                sixthNumber = 0;
                seventhNumber = 0;
            }
            if(strLength.length == 3){
                thirdNumber = thirdNumber +1;
                fourthNumber = 0;
                fifthNumber = 0;
                sixthNumber = 0;
                seventhNumber = 0;
            }
            if(strLength.length == 4){
                fourthNumber = fourthNumber+1;
                fifthNumber = 0;
                sixthNumber = 0;
                seventhNumber = 0;
            }
            if(strLength.length == 5){
                fifthNumber = fifthNumber+1;
                sixthNumber = 0;
                seventhNumber = 0;
            }
            if(strLength.length == 6){
                sixthNumber = sixthNumber+1;
                seventhNumber = 0;
            }
            if(strLength.length >= 7){
                seventhNumber = seventhNumber+1;
            }

            StringBuffer numberSbf = new StringBuffer();
            if(firstNumber != 0){
                numberSbf.append(firstNumber);
            }
            if(secondNumber != 0){
                numberSbf.append("."+secondNumber);
            }
            if(thirdNumber != 0){
                numberSbf.append("."+thirdNumber);
            }
            if(fourthNumber != 0){
                numberSbf.append("."+fourthNumber);
            }
            if(fifthNumber != 0){
                numberSbf.append("."+fifthNumber);
            }
            if(sixthNumber != 0){
                numberSbf.append("."+sixthNumber);
            }
            if(seventhNumber != 0){
                numberSbf.append("."+seventhNumber);
            }
            newSortList.add(numberSbf.toString());
        }
        return newSortList;
    }
public static void main(String[] args) {
        List<String> str = Arrays.asList("1", "1.1","1.3", "2", "2.1", "2.2", "3", "3.1", "3.2");
        System.out.println(newSortPlanNumber(str));
    }

输出结果:

1, 1.1, 1.2, 2, 2.1, 2.2, 3, 3.1, 3.2

符合预期

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值