下面的程序打印的内容?
public class LastLaugh{
public static void main(String[] args){
System.out.println("H"+"a");
System.out.println('H'+'a');
}
}
这个程序不会打印HaHa,它打印的是Ha169.
对于第一个输出,调用打印的是Ha,它执行一个字符串连接,而对第二个调用,'H'和'a'是字符型字面常量,所以+操作符执行的是加法而不是字符串连接。
那么应该怎样将字符连接在一起?可以使用类库。例如,可以使用一个字符串缓冲区
StringBuffer sb = new StringBuffer();
sb.append('H');
sb.append('a');
System.out.println(sb);
那么做可以正常运行,但很丑陋,还有办法避免这种啰嗦的方法,可以通过确保至少一个操作数为字符串类型,来强制+操作符执行字符串连接操作,而不是加法操作,惯用法是用一个空字符串("")。
当且仅当+操作符操作数至少有一个是String类型时,才会执行字符串连接操作。
分享到:
相关推荐
java中最容易被忽略的地方. 博文链接:https://justjavac.iteye.com/blog/175252
java中一些疑难问题的剖析,对初学java者有很好的帮助。
在JDK1.2中,Thread.stop、Thread.suspend以及其他许多线程相关的方法都因为它们不安全而不推荐使用了。下面的方法展示了你用Thread.stop可以实现的可怕事情之一
java解惑java解惑java解惑java解惑java解惑java解惑
一本很好的java参考书,帮助你解决java中的很多注意不到的问题。
Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑
这篇文档主要是介绍各种大家需要注意的java各种语法细节。希望对大家有所帮助。写的比较幽默。类似“十六进制的趣事”这种问题,估计在SSH大行其道的情况下,有些细节大家都不太关注了。
表达式之谜,符号之谜,循环之谜,异常之谜,类之谜,库之谜,各种谜题。
《Java解惑》《Java解惑》《Java解惑》《Java解惑》《Java解惑》《Java解惑》
Java解惑.pdf Java解惑.pdf Java解惑.pdf Java解惑.pdf
Java解惑中文版 Java解惑 java健壮程序
JAVA解惑.pdf JAVA解惑.pdf JAVA解惑.pdf
Java PUZZLE Java 解惑 Java PUZZLE Java 解惑 Java PUZZLE Java 解惑Java PUZZLE Java 解惑 Java PUZZLE Java 解惑 Java PUZZLE Java 解惑
JAVA解惑,你面包括一些java经典的问题。
比较容易混淆的java面试题,看看对笔试面试有一定的帮助。
与java相关的的学习,适合初学者,可以看看
JAVA解惑(PDF) Java学习中所涉及到的一些疑难杂症。
《Java解惑》 布洛克 著;陈昊鹏 译 扫描清晰带目录,仅供参阅,请支持正版