java数字转换字母,如何在Java中将数字转换为字母?

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?

解决方案

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:

rrQ1V.gif

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值