繁体   English   中英

talend 中的字母数字计数器以生成 id

[英]Alphanumeric Counter in talend to generate id

我正在尝试在 talend 中找出一种方法来生成一个字母数字计数器,该计数器以以下方式创建数字:YYXXXXXXXX

在哪里

  • YY 是日历年
  • XXXXXXXX 是 id,它是字母数字计数器(每年从序列号 00000001 到 ZZZZZZZZ)

每过一年,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM