java - 为什么 System.out.println(+c1) 和 System.out.println ("c1"= +c1) 之间存在差异?

标签 java char println

当我使用时:

char c1 = '\u534e';
System.out.println(+c1);

然后我得到:

21326

但是当我使用时:

char c1 = '\u534e';
System.out.println("c1 = " +c1);

然后我正确打印了字符:

c1 = 华

有什么问题吗?

最佳答案

您的问题有 3 种情况:

<强>1。 System.out.println(+c1);

在char类型上添加+会将其转换为int,因此会调用System.outprintln(int)方法,使其打印该字符的整数值。

<强>2。 System.out.println(c1);

在本例中我们没有添加+,所以它仍然作为char,所以在本例中println(char)将被调用,这将导致打印实际的字符。

<强>3。 System.out.println("c1 = "+c1);

当我们将 char 类型连接到 String 时,整个连接将被视为 String,因此在这种情况下 println(String) 将被调用并打印实际字符和字符串的其余部分。

关于java - 为什么 System.out.println(+c1) 和 System.out.println ("c1"= +c1) 之间存在差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43831075/

相关文章:

java - 将数据写入控制台同时在java中打印信息

java - 使用 System.out.println() 的目的是什么

java - OpenEdge 10.1C 在 JDBC 中将 datetimetz 作为非标准字符串返回

java - 将 EJB 应用程序共享到 Rest 服务中

java - 如何在 Java 中编写一个比较器来概括两种类型的对象?

Java RMI 客户端和服务器独立的机器

c# - 字符洗牌器

c++ - 字典序、字符串、c++

java - java中jdom xml解析器打印错误

c++ - 有什么方法可以将 "reconst"转换为非 const char 吗?