Java 将整数隐式转换为 ASCII 字符 A-F
Java converting integer to ASCII character A-F implicitly
如何在不使用任何转换 类 且不使用显式转换的情况下,隐式地将整数转换为其等效的 ASCII?
面临的问题是我正在尝试将整数 12
转换为字母 C
并将其附加到现有字符串。我的尝试如下:
s += 12 +'A'-10;
我得到的只是输出 67,它是 ASCII 字符 'C' 的十进制等效值,但我需要字母 C 作为输出,而不是 67。
有没有办法做到这一点而不使用多个 if-else-if 语句并且不使用上面提到的内容?
我没有看到你的问题。
char s = 12 + 'A' - 10;
System.out.println("s = '" + s + "'");
打印 s = 'C'
.
我假设是这样的:
char s = 'A' + 12 - 10;
将给出 字符 'C'
问题是 RHS 上的表达式:
12 + 'A' - 10
是类型 int
,因为 char
会自动加宽为 int
;所以 +=
运算符会将整数值连接到字符串。
两个选项(除其他外):
转换为 char
:
s += (char) (12 + 'A' - 10);
使用String.format
:
s += String.format("%X", 12);
如何在不使用任何转换 类 且不使用显式转换的情况下,隐式地将整数转换为其等效的 ASCII?
面临的问题是我正在尝试将整数 12
转换为字母 C
并将其附加到现有字符串。我的尝试如下:
s += 12 +'A'-10;
我得到的只是输出 67,它是 ASCII 字符 'C' 的十进制等效值,但我需要字母 C 作为输出,而不是 67。
有没有办法做到这一点而不使用多个 if-else-if 语句并且不使用上面提到的内容?
我没有看到你的问题。
char s = 12 + 'A' - 10;
System.out.println("s = '" + s + "'");
打印 s = 'C'
.
我假设是这样的:
char s = 'A' + 12 - 10;
将给出 字符 'C'
问题是 RHS 上的表达式:
12 + 'A' - 10
是类型 int
,因为 char
会自动加宽为 int
;所以 +=
运算符会将整数值连接到字符串。
两个选项(除其他外):
转换为
char
:s += (char) (12 + 'A' - 10);
使用
String.format
:s += String.format("%X", 12);