有没有比这更好的方法将数字转换为其字母等效值?
private String getCharForNumber(int i) {
char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
if (i > 25) {
return null;
}
return Character.toString(alphabet[i]);
}
也许有什么东西可以更优雅地处理大于 26 的数字?
只需使用 ASCII 表示即可。
private String getCharForNumber(int i) {
return i > 0 && i < 27 ? String.valueOf((char)(i + 64)) : null;
}
注意:这假设i
在。。。之间1
and 26
包括的。
你必须将条件更改为i > -1 && i < 26
和增量为65
如果你想i
是从零开始的。
这是完整的 ASCII 表,如果您需要参考:
Edit:
正如一些人在这里建议的那样,直接使用该字符更具可读性'A'
而不是它的 ASCII 代码。
private String getCharForNumber(int i) {
return i > 0 && i < 27 ? String.valueOf((char)(i + 'A' - 1)) : null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)