Mapeamento de inteiros para letras

Se você precisa mapear um valor inteiro para um valor de letra, por exemplo: 0 = A, 1 = B, 2 = C, etc., você pode seguir este conselho:

public static String getCharForNumber(int i){

// return null for bad input
if(i < 0){
return null;
}

// convert to base 26
String s = Integer.toString(i, 26);

char[] characters = s.toCharArray();

String result = "";
for(char c : characters){
// convert the base 26 character back to a base 10 integer
int x = Integer.parseInt(Character.valueOf(c).toString(), 26);
// append the ASCII value to the result
result
+= String.valueOf((char)(x + 'A'));
}

return result;
}

Generalizei o algoritmo para fazer uso da conversão de base 26 a fim de lidar com um tamanho de lista maior que 26. Vale a pena notar que o valor BA, e não AA como alguns podem esperar, segue Z.