我有以下字符串:
String
如何按以下顺序000001、000002、000003、000004递增最后一个索引。
答案 0 :(得分:0)
如果最后一个字符小于'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);
}