1

我想创建某种应具有以下格式的 ID:

A1
A2
..
A9
B1
B2
..
B9
C1
..

因此,数字计数应该从 1 到 9,并且每次超过数字 9 时字母都应该增加。

是否有已经提供这种功能的库?如果不是,一般如何称呼这种“模式”?

4

4 回答 4

1

你可以使用这个:

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

于 2013-11-06T15:26:51.607 回答
1

您不会在标准库中找到它,但您可以为此滚动自己的循环:

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},笛卡尔积通常实现为一系列嵌套循环(在本例中为两个),这些循环遍历元素;您可以修改迭代变量的端点以获得您需要的值范围。

于 2013-11-06T15:21:07.503 回答
0

这样做

    for (char i =  'A'; i <= 'Z' ; i++) {
           for(int j=1;j<10;j++){
              String id=""+i+j;
              System.out.println(id);
          }
    }
于 2013-11-06T15:26:03.107 回答
0

您可以将此作为“灵感”或指南来创建自己的方法:

    int count = 1;
    char x = 'A';

    while(count != 11) {
        if(count == 10) {
            x = (char)(x + 1);
            count = 1;
        }
        System.out.println(count + "" + x);
        count++;
    }

这将打印您想要的内容,然后打印一些... :)

于 2013-11-06T15:22:36.083 回答