1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Java生成一定规则递增编号 -----生成客户编号(A0001-ZZZZZ9999)工具类

Java生成一定规则递增编号 -----生成客户编号(A0001-ZZZZZ9999)工具类

时间:2021-02-03 23:55:05

相关推荐

Java生成一定规则递增编号 -----生成客户编号(A0001-ZZZZZ9999)工具类

代码片段

public class MemberNumberUtil {private static List<String> ALPHA = Arrays.asList("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");public static void main(String[] args) {String a0001 = getMemberNumber("AZZ9999");System.out.println(a0001);}public static String getMemberNumber(String memberNumber){return test(memberNumber) ;}private static String test(String id){int LENGTH = 4 ;int max = 9999 ;String substring = id.substring(id.length()-4);String alpha = id.replace(substring,"");int parseInt = Integer.parseInt(substring);if(parseInt == max){// 字母晋级计算字母// 获取最后一位字母String aa = getAA(alpha);return aa +"0001" ;}else{parseInt +=1 ;String format = String.format("%s%0" + LENGTH + "d", alpha, parseInt);return format ;}}// 获取字母private static String getAA(String alpha){//获取最后一个字母String substring = alpha.substring(alpha.length() - 1);if(ALPHA.indexOf(substring) != ALPHA.size() -1){//说明不是Z// 索引+1String s = ALPHA.get(ALPHA.indexOf(substring) + 1);String substring1 = alpha.substring(0, alpha.length() - 1);if(StringUtils.isNotEmpty(substring1)){return substring1+s ;}return s ;}else{// 判断是否全部是ZPattern pattern1 = pile("[Z]*");Matcher matcher = pattern1.matcher(alpha);if(matcher.matches()){// 全是ZString replace = alpha.replace("Z", "A");return replace+"A" ;}// 说明最后一位是Z// AAZ => ABAboolean flag = false ;byte[] bytes = alpha.getBytes();for (int i = bytes.length-1;i>=0;i--) {String s = asciiToString(bytes[i] + "");if(ALPHA.indexOf(s) == ALPHA.size()-1){// 说明是Zflag = true ; // 判断下一个是否需要递增bytes[i] = 65 ;}else if(flag) {bytes[i] += 1 ;flag = false ;}}return new String(bytes) ;}}// ascii 转 Stringprivate static String asciiToString(String value){StringBuffer sbu = new StringBuffer();String[] chars = value.split(",");for (int i = 0; i < chars.length; i++) {sbu.append((char) Integer.parseInt(chars[i]));}return sbu.toString();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。