通过连接空字符串在字符串转换中的空字符串顺序

时间:2016-10-03 23:46:50

标签: java string string-concatenation string-conversion

有几种方法可以在Java中执行字符串转换,有些人(包括我自己)更喜欢连接一个空字符串来进行转换:

示例:

char ch = 'A';
String str = "" + ch;   //gets character value and append to str

然而空字符串的顺序对我来说总是一个谜。以下将成功执行字符串转换:

str = ch + "";    
str = ch + "" + ch;  

但不是以下内容:

str = ch + ch + "";    //if (ch + "") gives us "A", shouldn't this be "65A"?

Que:为了安全起见,我们总是可以将空字符串放在前面,但是我想知道当(空)字符串放在其他位置时(例如在中),Java如何解释连接之间或之后)。

1 个答案:

答案 0 :(得分:5)

+运算符是左关联的,这意味着它是从左到右分组的。

str = ch + ch + "";

这相当于

str = (ch + ch) + "";
 // = ('A' + 'A') + "";
 // = 130 + "";
 // = "130";

str = ch + (ch + "");
 // = 'A' + ('A' + "");
 // = 'A' + "A";
 // = "AA";

char + StringString + char都会生成String。但char + char会返回int。你现在看到为什么第二个+ ch不起作用了吗?