字符串连接操作符“+”

操作符“+” 能够连接字符串,并生成新的字符串。

 

如果 “+” 操作符中有一个操作元为 String 类型,则另一个操作元可以是任意类型(包括基本类型和引用类型),不过该操作元将被转换成字符串。当一个操作元为String 类型时,如果另一个操作元为引用类型,就调用所引用对象的 toString() 方法。来获得字符串。

 

String s1 = "Age: " + 1 + 2; //s1 的内用为 Age: 12

String s2 = "Age: " + "5"; //s2 的内容为 Age: 5

String s3 = "Age: " + new Integer(18); //s3 的内容为 Age: 18,调用 Integer 的 toString() 方法

String s4 = "Answer: " + true; //s4 的内容为 Answer: true

 

//s5 的内容为 Answer: false,调用 Boolean 对象的 toString() 方法

String s5 = "Answer: " + new Boolean("false");

Object obj = null;

String s6 = "Answer: " + obj; //s6 的内容为 Answer: null

 

在 java.lang.Object 类中定义了 toString() 方法,因此所有的 Java 类都有这一个方法。

 

如果 “+” 操作符的两个操作元都不是 String 类型,那么 “+” 操作符的两格操作元必须都是除 boolean 以外的基本数据类型,此时 “+” 作为数学加法操作符处理。

 

对于包含多个 “+” 操作符的表达式,Java 根据 “+” 的左结合性特点,从左边开始计算表达式。根据操作元的类型来决定 “+” 字符串连接操作符还是数学加法操作符。

 

eg:

System.out.println(5+1+"1"+new Integer(1)+2+4+new Long(11));

 

结果为6112411

 

System.out.println(5+new Boolean(true)+2+4+new Long(11)); //编译错误

 

因为 5 和 Boolean 对象之间既不能进行数学加法运算,也不能进行字符串连接运算,所以编译出错。

 

在JDK 1.5 中,允许数字基本类型与数字包装类型进行混合数学运算。eg:“1+new Integer(2)+2”,在JDK 1.5 中是合法的。

 

值得注意的是,除了 “+” 能用于字符串的连接以外,其他操作符(如“-”、“&”和“&&”等)都不支持 String 类型的操作元。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值