Tec*_*tes -6 java alphanumeric auto-increment
我是android编码实践的新手
ABB20180001
假设这是我的第一个ID,我希望使用共享的首选项将此值自动递增1并用作员工ID。如ABB20180002,ABB20180003,ABB20180004等。
您可以使用特定的radix将数字解析为长整数,将其递增,然后将其转换回String。
如果使用所有字母,则可以36用作基数:
long number = Long.parseLong("ABB20180001", 36);
String incremented = Long.toString(number + 1, 36).toUpperCase();//"ABB20180002"
Run Code Online (Sandbox Code Playgroud)
您的数字可能只是十六进制数字。在这种情况下,您可以使用16基数代替36上面的显示。
请注意,如果ABB只是前缀,则上述方法将无效(将值增加20将返回ABB2018000L)。
如果"ABB"仅仅是静态前缀,那么您可以使用
//if the prefix changes, a regex will be needed
String incremented = "ABB" + (Long.parseLong(string.replace("ABB", "")) + 1)
Run Code Online (Sandbox Code Playgroud)
最后,如果"ABB"可以更改,则可以使用这样的正则表达式(以下示例假定前缀的长度为3,请相应地进行更改):
String s = "ABB20180001";
String[] parts = s.split("(?<=[A-Z]{3})"); //split after a sequence of 3 letters
String res = parts[0] + (Long.parseLong(parts[1]) + 1);
Run Code Online (Sandbox Code Playgroud)