Как увеличить строку справа налево - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть следующая строка:

String numbersOfIds = "00000";

как увеличить последний индекс в следующей последовательности 000001, 000002, 000003, 000004.

1 Ответ

0 голосов
/ 27 ноября 2018

Если последний символ меньше '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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...