在一种称为 Java 的编程语言中,我有以下代码行:
char u = 'U';
System.out.print(u + 'X');
此语句产生如下输出:
173
代替
UX
我错过了什么吗?为什么不输出“UX”?谢谢你。
在一种称为 Java 的编程语言中,我有以下代码行:
char u = 'U';
System.out.print(u + 'X');
此语句产生如下输出:
173
代替
UX
我错过了什么吗?为什么不输出“UX”?谢谢你。
在这种称为 Java 的语言中,添加两个 chars、shorts 或 bytes 的结果是一个 int。
因此,将U
(85) 的整数值与X
(88) 的整数值相加,得到173
(85+88) 的整数值。
修理:
您可能想要制作u
一个字符串。一个字符串加一个字符将是一个字符串,一个字符串加一个字符串也是如此。
String u = "U"; // u is a string
System.out.print(u + 'X'); // string plus a char is a string
因为您正在执行字符的添加。在 Java 中,当您添加字符时,它们首先被转换为整数。在您的情况下,U 的 ASCII 代码是 85,X 的代码是 88。
然后打印总和,即 173。
如果你想连接字符,你可以这样做,例如:
System.out.print("" + u + 'X');
现在+
不再是一个字符加法,它变成了一个字符串连接(因为第一个参数""
是一个字符串)。
您还可以从其字符创建字符串:
char[] characters = {u, 'X'};
System.out.print(new String(characters));
String u = "U";
System.out.print(u + "X");
而不是char
类型使用String
类或StringBuilder
类
将其中一个字符转换为字符串的另一种方法:
char u = 'U';
System.out.print(Character.toString(u) + 'X');
当您的变量char
有充分的理由属于类型并且您不能轻易将其重新声明为String
.
那种“称为 Java 的语言”让我很开心。
快速搜索“java concatenate”(我建议您现在以及每次遇到问题时都这样做)显示大多数优秀的 Java 程序员讨厌使用+
for 连接。即使在您想要字符串连接时不以数字形式使用它,就像在您的代码中一样,它也很慢。
似乎更好的方法是创建一个 StringBuffer 对象,然后append
为要连接到它的每个字符串调用它的方法。请参阅此处:http ://www.ibm.com/developerworks/websphere/library/bestpractices/string_concatenation.html