有几种方法可以在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如何解释连接之间或之后)。
答案 0 :(得分:5)
+
运算符是左关联的,这意味着它是从左到右分组的。
str = ch + ch + "";
这相当于
str = (ch + ch) + "";
// = ('A' + 'A') + "";
// = 130 + "";
// = "130";
不
str = ch + (ch + "");
// = 'A' + ('A' + "");
// = 'A' + "A";
// = "AA";
char + String
和String + char
都会生成String
。但char + char
会返回int
。你现在看到为什么第二个+ ch
不起作用了吗?