46.字符串连接运算符
这个运算符可以说是在之后的编程中,运用最多的运算符了,根据印象来看的话,仅次于赋值运算符。
这个运算符也是重载运算符,重载了+运算符。在前面也提到了,Java中再布尔运算符和位运算中,实现了不少运算符的重载。但是由于这些位运算符使用频率极低,人们几乎都忘了Java还有这么一类运算符,以至于很多时候,会把字符串连接运算符认为是Java中唯一重载的运算符。
那么当Java源代码中出现了+运算符后,它到底是加法运算符还是字符串连接运算符?这里就是Java编译器运行判断的基本原则:
当“+”用在表达式中的时候,如果其中有一个操作数是字符串类型(String),则Java会自动将另一个操作数也转换成字符串,然后将这两个字符串相连起来生成一个新的字符串。
所以这里有一个小技巧,如果你想把一个非字符串类型的数据对象变成字符串类型,那么可以通过将数字和一个空字符串相连的方式,来方便的将数字转换成字符串类型。
比如: int i=5;
String s = i+"";
这样就很容易的实现了字符串类型的转换了。这在Java编程中是一个很实用的技巧。
下面来看一个例子,来分析一下:
public class StringPlus {
public static void main(String[] agrs) {
double x = 9.987;
double y = 1;// 自动将int型的数值1提升到double类型1.0
double t = x + y;
String s = "Price is: " + x; // 得到一个字符串:“Price is:9.987”
String st = "Total Price is: " + t;
// 得到一个字符串:“Total Price is:10.987”
System.out.println(s);
System.out.println(st);
System.out.println("" + x + y);// 打印出一个字符串:“9.9871.0”
System.out.println(x + y + "");// 打印出一个字符串:“10.987”
}
}
从上面的例子中,我们可以看到,String和一个数字类型的数据进行“+”运算,将会得到一个新的字符串,这个字符串由旧的字符串和这个数字组成。
再来看这行程序:
System.out.println(""+x+y);
根据运算符从左到右的结合原则,空字符串“""”首先和x进行运算,得到一个字符串,这个字符串的内容就是“9.987”,然后,这个字符串再和数字y进行运算,此时得到一个由x和y组合成的新的字符串:9.9871.0。
比较一下下面这条语句:
System.out.println(x+y+"");
这条语句首先进行数值的相加运算,得到一个新的数值:10.987,然后再和空字符串进行连接运算,此时得到一个新的字符串,内容为“10.987”。
下一篇: ps金色怎么调出来?数值是多少?