用Java中的字符增加数字

Thi*_*iện 2 java java-8

我有一个增加数字和字符组合的问题.我想要的是从 001增加到ZZZ

例如:001,002,...,999,00A,...,00Z,0AA,......,ZZZ

我的代码看起来像这样:

int numberA = 1000;
int numberB = 1024;
int numberC = 1025;

/*
 * Some formulae here
 */

System.out.println(numberA);
//Result: 00A
System.out.println(numberB);
//Result: 00Z
System.out.println(numberC);
//Result: 0A0
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题吗?

Rol*_*and 5

也许以下内容可以帮助您入门;-)

final Integer radix = 36; // that's 0-9 A-Z
final Double limit = Math.pow(radix.doubleValue(), 3.0 /* max number of 'chars' */);
Stream.iterate(0, i -> i+1)
        .map(i -> Integer.toString(i, radix))
        .map(s -> String.format("000%S", s)
                        .substring(s.length())) // leading 0, uppercase
        .limit(limit.longValue())
        .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

或者干脆:

String radix36 = Integer.toString(yourIntThatYouCanIncrement, 36);
Run Code Online (Sandbox Code Playgroud)

当然,如果您需要00#-format(前导零和大写),您也需要应用这些功能.Holgers注释已经包含了一个简短的变体来组合大写/前导零:

String formatted = String.format("000%S", radix36)
                         .substring(radix36.length());
Run Code Online (Sandbox Code Playgroud)