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请参见