[英]Alphanumeric Counter in talend to generate id
我正在尝试在 talend 中找出一种方法来生成一个字母数字计数器,该计数器以以下方式创建数字:YYXXXXXXXX
在哪里
每过一年,8个字符的ID应该重新设置并以00000001重新开始
序列应该看起来像
00000001
00000002
00000003
...
99999999
A0000001
A0000002
A0000003
...
A9999999
B0000001
B0000002
B0000003
...
B9999999
Z0000001
Z0000002
Z0000003
...
Z9999999
...
ZA000001
ZA000002
ZA000003
...
ZA999999
......
ZZZZZZZZ
最后一个数字应该是 ZZZZZZZZ。 所以它会先是 1-9,然后是 AZ。
一年中我们可以容纳的最后一个 id 将是 20ZZZZZZZZ
这该怎么做?
基本上它将数字(长)转换为基数为 36 的基数,用前面的零填充它以匹配格式,连接当前年份的最后两位数字并将结果作为字符串返回。
import java.time.LocalDateTime; //for getting the current year from system clock
public static String codegen(long input) {
String lastTwoDigitsOfYear = Integer.toString(LocalDateTime.now().getYear()).substring(2); // the "YY"
String radixOf36Base = Long.toString(input, 36).toUpperCase();
String radixOf36BasePadded = String.format("%8s", radixOf36Base).replace(' ', '0'); //the "XXXXXXXX"
return lastTwoDigitsOfYear + radixOf36BasePadded; //YYXXXXXXXX
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.