Java隐式地将整数转换为ASCII字符A-F

时间:2016-05-20 08:17:43

标签: java char int ascii implicit-conversion

如何在不使用任何转换类且不使用显式转换的情况下隐式地将整数转换为其 ASCII 等效值?

面临的问题是我正在尝试将整数12转换为字母C并将其附加到现有字符串。我的尝试如下:

s += 12 +'A'-10; 

所有这一切得到的是输出67,它是ASCII字符'C'的十进制等值,但我需要字母C作为输出,而不是67。

有没有办法在不使用多个if-else-if语句的情况下执行此操作,也不使用上面提到的内容?

3 个答案:

答案 0 :(得分:2)

我没有看到你的问题。

    char s = 12 + 'A' - 10;
    System.out.println("s = '" + s + "'");

打印s = 'C'

答案 1 :(得分:2)

问题在于RHS上的表达式:

12 + 'A' - 10

的类型为int,因为char会自动扩展为int;所以+=运算符会将整数值连接到字符串。

两个选项(其中包括):

  1. 转换为char

    s += (char) (12 + 'A' - 10);
    
  2. 使用String.format

    s += String.format("%X", 12);
    

答案 2 :(得分:0)

我认为这是:

char s = 'A' + 12 - 10;

将提供字符 'C'