Если последний символ меньше '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);
}