Java 如何从右到左递增字符串

Java 如何从右到左递增字符串,java,numbers,auto-increment,Java,Numbers,Auto Increment,我有以下字符串: String numbersOfIds = "00000"; 如何按以下顺序递增最后一个索引000001、000002、000003、000004。如果最后一个字符小于'9',则递增并停止,否则将其设置为'0',向左移动一个位置,然后重复说明 像这样: public static String increment(String input) { char[] buf = input.toCharArray(); for (int i = buf.length

我有以下字符串:

String numbersOfIds = "00000";

如何按以下顺序递增最后一个索引000001、000002、000003、000004。

如果最后一个字符小于
'9'
,则递增并停止,否则将其设置为
'0'
,向左移动一个位置,然后重复说明

像这样:

public static String increment(String input) {
    char[] buf = input.toCharArray();
    for (int i = buf.length - 1; i >= 0; i--) {
        if (buf[i] >= '0' && buf[i] <= '8') {
            buf[i]++;
            return new String(buf);
        } else if (buf[i] != '9') {
            throw new IllegalArgumentException(input);
        }
        buf[i] = '0';
    }
    // Overflow, increase buffer size and prefix value with '1'
    char[] buf2 = new char[buf.length + 1];
    buf2[0] = '1';
    System.arraycopy(buf, 0, buf2, 1, buf.length);
    return new String(buf2);
}
公共静态字符串增量(字符串输入){
char[]buf=input.toCharArray();
对于(int i=buf.length-1;i>=0;i--){

if(buf[i]>='0'&&buf[i]为什么使用
字符串而不是
int
/
long
?您可以使用一个计数器变量,然后将其转换为
字符串
,但这似乎有点多余,除非您有理由让它成为
字符串,如果它像
整数
,如果它像
整数一样运行
然后将其转换为
整数
只要数字开始从右向左相加,就没有使用字符串的具体原因,例如000001请参见