自定义编码按要求递增
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;
测试结果
以上是关于自定义编码按要求递增的主要内容,如果未能解决你的问题,请参考以下文章