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.