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();
}