你所不知的+操作符和字符
- 今天有个人在QQ上问我,说Java使用System.out.print('a');打印正确,但是System.out.print('a'+'b');打印195,是什么情况?
- 就此我给出以下解释分享给大家,以免以后大家遇到如此问题时手足无措。
- 问题在于单引号,单引号里的是一个字符,也就是char类型,双引号里是字符串,也就是String类型,String类型不是基本数据类型,为对象。用加号将两个字符型连接得到的到的类型到底是字符型还是字符串?系统无法辨别。也就是说jdk不予许使用字符拼接。
- 再解释+号的作用,+操作符有两种不同的意思。第一种为连接符,这种只有操作数中有String类型时才可以。还有一种为加法操作符,这种就不用多说。
- 所以以下代码执行的是加法,而不是连接。也就是把a和b十进制的ascii码相加:所以结果就是195
-
System.out.print('a'+'b');
如果想得到ab的字符串,可以使用以下办法:
-
System.out.print(""+'a'+'b');
当然还可以使用join和printf等方法。
- 原理已经分享个大家了,解决办法就不必细细说明啦。。。。。
- 祝你们好运。
请哪出1+1=2的证据,否则我不相信。