我想创建某种应具有以下格式的 ID:
A1
A2
..
A9
B1
B2
..
B9
C1
..
因此,数字计数应该从 1 到 9,并且每次超过数字 9 时字母都应该增加。
是否有已经提供这种功能的库?如果不是,一般如何称呼这种“模式”?
我想创建某种应具有以下格式的 ID:
A1
A2
..
A9
B1
B2
..
B9
C1
..
因此,数字计数应该从 1 到 9,并且每次超过数字 9 时字母都应该增加。
是否有已经提供这种功能的库?如果不是,一般如何称呼这种“模式”?
你可以使用这个:
class IDGenerator{
char c ='A';
int next = 1;
public String getNextID(){
String id = Character.toString(c) + Integer.toString(next++);
if(next>9){
next =1;
c++;
}
return id;
}
}
请注意,这将适用于 Z9
您不会在标准库中找到它,但您可以为此滚动自己的循环:
for (char c = 'A'; c <= 'Z'; c++) {
for (int i = 1; i <= 9; i++) {
String id = Character.toString(c) + i;
System.out.println(id);
}
}
至于“模式”,我会说这是笛卡尔积 {A,...,Z} x {1,...,9}
,笛卡尔积通常实现为一系列嵌套循环(在本例中为两个),这些循环遍历元素;您可以修改迭代变量的端点以获得您需要的值范围。
这样做
for (char i = 'A'; i <= 'Z' ; i++) {
for(int j=1;j<10;j++){
String id=""+i+j;
System.out.println(id);
}
}
您可以将此作为“灵感”或指南来创建自己的方法:
int count = 1;
char x = 'A';
while(count != 11) {
if(count == 10) {
x = (char)(x + 1);
count = 1;
}
System.out.println(count + "" + x);
count++;
}
这将打印您想要的内容,然后打印一些... :)