在一种名为Java的编程语言中,我有以下代码行:
char u = 'U';
System.out.print(u + 'X');
此语句产生如下输出:
173
而不是
UX
我错过了什么吗?为什么不输出'UX'?谢谢。
答案 0 :(得分:3)
在这种称为Java的语言中,添加两个字符,短路或字节is an int的结果。
因此,U
(85)的整数值被加到X
(88)的整数值,并得到整数值173
(85 + 88)。
要修复:
您可能希望将u
设为字符串。字符串加上 char 将是一个字符串,字符串加上一个字符串。
String u = "U"; // u is a string
System.out.print(u + 'X'); // string plus a char is a string
答案 1 :(得分:3)
因为您正在执行添加字符。在Java中,当您添加字符时,它们首先转换为整数。在您的情况下,U的ASCII码是85,X的代码是88。
然后打印总和,即173。
如果要连接字符,可以这样做,例如:
System.out.print("" + u + 'X');
现在+
不再是char添加,它变成了字符串连接(因为第一个参数""
是一个字符串)。
您还可以从字符中创建字符串:
char[] characters = {u, 'X'};
System.out.print(new String(characters));
答案 2 :(得分:0)
String u = "U";
System.out.print(u + "X");
而非char
类型使用String
类或StringBuilder
类
答案 3 :(得分:0)
将其中一个字符转换为字符串的另一种方法:
char u = 'U';
System.out.print(Character.toString(u) + 'X');
当您的变量属于char
类型时,这种方式非常有用,原因很简单,您无法轻松将其重新声明为String
。
答案 4 :(得分:-1)
那种“Java语言”让我很开心。
快速搜索“java concatenate”(我建议你现在这样做,每次有问题时)都会发现大多数优秀的Java程序员讨厌使用+
进行连接。即使你想要字符串连接时没有使用数字,就像你的代码一样,它也很慢。
似乎更好的方法是创建一个StringBuffer对象,然后为要连接到它的每个字符串调用它的append
方法。见这里:http://www.ibm.com/developerworks/websphere/library/bestpractices/string_concatenation.html