Javaでアルファベットの文字列を採番する

Java で 0からZまでを採番するとき、アルファベット(A~Z)の採番をどうやるか。
以下のコードが役に立つと思います。


public static void main(String[] args) {

    System.out.println("(文字列, 16進数, 10進数, 10進数+1, 16進数+1, 文字列+1)");

    //文字列リスト
    String slist = "0123456789:@ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    for(int i=0; i<slist.length(); i++){

        //文字列を1つ取り出します
        String s = slist.substring(i, i+1);

        //文字列のバイト配列を文字列(16進数形式)に変換します
        String hb = DatatypeConverter.printHexBinary(s.getBytes()).toUpperCase();

        //文字列のバイト配列を数値(10進数形式)に変換します
        int intVal = Byte.toUnsignedInt(s.getBytes()[0]);

        //数値(10進数形式)を+1インクリメントします
        int intCalc = intVal + 1;

        //インクリメントした数値(10進数形式)を文字列(16進数形式)に変換します
        String hbNew = Integer.toHexString(intCalc).toUpperCase();

        //文字列(16進数形式)を文字列に変換します
        String sNew = new String(DatatypeConverter.parseHexBinary(hbNew));

        System.out.println("(" + s + ", " + hb + ", " + intVal + ", " + intCalc + ", " + hbNew + ", " + sNew + ")");
    }

}


実行結果は以下の通り。

(文字列, 16進数, 10進数, 10進数+1, 16進数+1, 文字列+1)
(0, 30, 48, 49, 31, 1)
(1, 31, 49, 50, 32, 2)
(2, 32, 50, 51, 33, 3)
(3, 33, 51, 52, 34, 4)
(4, 34, 52, 53, 35, 5)
(5, 35, 53, 54, 36, 6)
(6, 36, 54, 55, 37, 7)
(7, 37, 55, 56, 38, 8)
(8, 38, 56, 57, 39, 9)
(9, 39, 57, 58, 3A, :)
(:, 3A, 58, 59, 3B, ;)
(@, 40, 64, 65, 41, A)
(A, 41, 65, 66, 42, B)
(B, 42, 66, 67, 43, C)
(C, 43, 67, 68, 44, D)
(D, 44, 68, 69, 45, E)
(E, 45, 69, 70, 46, F)
(F, 46, 70, 71, 47, G)
(G, 47, 71, 72, 48, H)
(H, 48, 72, 73, 49, I)
(I, 49, 73, 74, 4A, J)
(J, 4A, 74, 75, 4B, K)
(K, 4B, 75, 76, 4C, L)
(L, 4C, 76, 77, 4D, M)
(M, 4D, 77, 78, 4E, N)
(N, 4E, 78, 79, 4F, O)
(O, 4F, 79, 80, 50, P)
(P, 50, 80, 81, 51, Q)
(Q, 51, 81, 82, 52, R)
(R, 52, 82, 83, 53, S)
(S, 53, 83, 84, 54, T)
(T, 54, 84, 85, 55, U)
(U, 55, 85, 86, 56, V)
(V, 56, 86, 87, 57, W)
(W, 57, 87, 88, 58, X)
(X, 58, 88, 89, 59, Y)
(Y, 59, 89, 90, 5A, Z)
(Z, 5A, 90, 91, 5B, [)


コードを採番するときは、上記のコードのように採番する順番に文字列を作成しておく方法とバイトコードをインクリメントする2つの方法があると思います。

どちらにするかは、各自で検討されるとよいかと思います。

以上

最新

【PHP】スーパーグローバル変数 $_GET $_POST $_REQUEST

スーパーグローバル変数 $_REQUESTは、HTTPメソッドがGETとPOSTのいずれの場合もデータを取得することができる。 $_REQUEST['xxx'] $_GET['xxx'] $_POST['xxx'] ...