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つの方法があると思います。
どちらにするかは、各自で検討されるとよいかと思います。
以上