Java 和递增字符串
Java and incrementing strings
我有
String sth = "abc";
并希望在 Java 中增加它。所以我想要一个类似于下面的循环:
for (int i = 0; i < 50; i++) {
System.out.println(sth++);
}
有输出
abc
abd
abe
abf
...
aby
abz
aca
acb
等等
Java有没有办法做到这一点?
您不能将 ++
运算符应用于字符串,但您可以自己实现此逻辑。我将从字符串的末尾开始检查字符串并单独处理每个字符,直到我找到一个可以简单地递增的字符:
public static String increment(String s) {
StringBuilder sb = new StringBuilder(s);
boolean done = false;
for (int i = sb.length() - 1; !done && i >= 0; --i) {
char c = sb.charAt(i);
if (c == 'z') {
c = 'a';
} else {
c++;
done = true;
}
sb.setCharAt(i, c);
}
if (!done) {
sb.insert(0, 'a');
}
return sb.toString();
}
我有
String sth = "abc";
并希望在 Java 中增加它。所以我想要一个类似于下面的循环:
for (int i = 0; i < 50; i++) {
System.out.println(sth++);
}
有输出
abc
abd
abe
abf
...
aby
abz
aca
acb
等等
Java有没有办法做到这一点?
您不能将 ++
运算符应用于字符串,但您可以自己实现此逻辑。我将从字符串的末尾开始检查字符串并单独处理每个字符,直到我找到一个可以简单地递增的字符:
public static String increment(String s) {
StringBuilder sb = new StringBuilder(s);
boolean done = false;
for (int i = sb.length() - 1; !done && i >= 0; --i) {
char c = sb.charAt(i);
if (c == 'z') {
c = 'a';
} else {
c++;
done = true;
}
sb.setCharAt(i, c);
}
if (!done) {
sb.insert(0, 'a');
}
return sb.toString();
}