如何在Android中增加字母数字?

Tec*_*tes -6 java alphanumeric auto-increment

我是android编码实践的新手

ABB20180001 假设这是我的第一个ID,我希望使用共享的首选项将此值自动递增1并用作员工ID。如ABB20180002,ABB20180003,ABB20180004等。

ern*_*t_k 5

您可以使用特定的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)