How do I convert a number to a letter in Java?
java
Solution
Just make use of the ASCII representation.
private String getCharForNumber(int i) {
return i > 0 && i < 27 ? String.valueOf((char)(i + 64)) : null;
}
Note: This assumes that `i` is between `1` and `26` inclusive.
You'll have to change the condition to `i > -1 && i < 26` and the increment to `65` if you want `i` to be zero-based.
Here is the full ASCII table, in case you need to refer to:
Edit:
As some folks suggested here, it's much more readable to directly use the character `'A'` instead of its ASCII code.
private String getCharForNumber(int i) {
return i > 0 && i < 27 ? String.valueOf((char)(i + 'A' - 1)) : null;
}
Problem
Is there a nicer way of converting a number to its alphabetic equivalent than this? ``` private String getCharForNumber(int i) { char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray(); if (i > 25) { return null; } return Character.toString(alphabet[i]); } ``` Maybe something than can deal with numbers greater than 26 more elegantly too?