欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

46.字符串连接运算符

程序员文章站 2022-04-29 12:01:31
...

这个运算符可以说是在之后的编程中,运用最多的运算符了,根据印象来看的话,仅次于赋值运算符。

 

这个运算符也是重载运算符,重载了+运算符。在前面也提到了,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”。