自定义编码按要求递增

Posted 好大的月亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义编码按要求递增相关的知识,希望对你有一定的参考价值。

概述

有时候编码不是数字,由数组字母组成,但是又需要有序递增。

代码Demo

附上ASCII码参考页面
https://tool.oschina.net/commons?type=4

需求:有一组长度不确定的编码,需要依次累加.每位取值范围是0-9A-Z。
到10的时候需要自动转成A
比如

  • A000 -> A001
  • A009->A00A
  • A00Z->A010

我的做法是代码里直接转成ACII码直接累加

public static String addAndGetNext(String str)
    Assert.notNull(str, "字符不能为空");

    char[] str_chars = str.toCharArray();

    int length = str_chars.length;

    int currentIndex = length - 1;

    indexCharAdd(str_chars, currentIndex);

    return String.valueOf(str_chars);


public static void indexCharAdd(char[] str_chars, int index)
    if(index < 0)
        return;
    

    char str_char = str_chars[index];
    int str_chars_ascii = str_char + 1;
    
    //在(57,65)这段范围里是特殊字符,累加后大于58小于65的的直接跳到字母A
    if(str_chars_ascii > 57 && str_chars_ascii < 65)
        str_chars_ascii = 65;
    

    if(str_chars_ascii > 90)
        str_chars_ascii = 48;

        indexCharAdd(str_chars, index - 1);
    
    str_chars[index] = (char) str_chars_ascii;

测试结果

以上是关于自定义编码按要求递增的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎样输出自定义函数的输出

怎样在excel下拉中字母递增?

C语言 在文件中存放的均为40至60之间的正整数,要求统计每个正整数出现的次数,按次数升序排序并输出?

C语言结构体排序

c语言 自定义函数怎么用啊

如何用C语言判断一个数是不是为递增数