3

所以我想将一个字符添加到一个字符串中,并且在某些情况下想要将该字符加倍然后将其添加到一个字符串中(即先添加到它本身)。我试过这个,如下所示。

char s = 'X'; 
String string = s + s;

这引发了一个错误,但我已经在字符串中添加了一个字符,所以我尝试了:

String string = "" + s + s;

哪个有效。为什么在总和中包含一个字符串会导致它起作用?是否添加了一个字符串属性,由于字符串的存在,当字符转换为字符串时,该属性只能由字符使用?

4

7 回答 7

7

这是因为 String + Char = String,类似于 int + double = double。

尽管其他答案告诉您, Char + Char 是 int 。

字符串 s = 1; // 由于类型不匹配导致的编译错误。

您的工作代码是 (String+Char)+Char。如果你这样做了: String+(Char+Char) 你会在你的字符串中得到一个数字。例子:

System.out.println("" + ('x' + 'x')); // prints 240
System.out.println(("" + 'x') + 'x'); // prints xx - this is the same as leaving out the ( ).
于 2013-08-13T19:06:34.247 回答
4

char+char返回 anint所以编译器会抱怨String string = (int),这确实是错误的。

""要连接字符,您可以在开头使用空字符串 ( ),以便+运算符用于String连接使用StringBuilder也可以附加字符的 a。

char s = 'X';
String string = new StringBuilder().append(s).append(s).toString();

注意:char变量是s,不是X

于 2013-08-13T19:00:49.073 回答
3

In Java, char is a primitive integral numeric type. As such, the operator + is defined to mean addition of two chars, with an int result. The operator means concatenation only on strings. So one way to do it is

"" + char1 + char2

This will coerce the right-hand operand to a string, which is what you want to achieve.

A side point: char is the only unsigned primitive numeric type in Java and in one project of mine I specifically use it as such.

于 2013-08-13T19:03:34.480 回答
0

String string = "" + X + X;

is an example of concatenation. By pre-pending the empty string you specify that the result should be a string. The first line of code tells the compiler that you are adding 2 chars (or ints) which should result in an int, and not a string.

于 2013-08-13T19:03:26.810 回答
0

添加“”会将返回类型更改为字符串。忽略它意味着返回类型是一个不匹配的字符。

于 2013-08-13T19:02:30.540 回答
0
 String string = X + X;

这里 X 我被威胁为一个变量

你应该使用一些东西作为

String string ="x x";

或者

String x = "something";
String y = "else";

那么String string= x+y; 应该可以正常工作,这是因为您正在与“+”号连接,您也可以使用

string = string.concat(x+y); 

或者

string = string.concat("something"+"else");
于 2013-08-13T19:07:02.427 回答
0

当你这样做 char s = 'X'; String string = X + X;

为什么不这样做呢? char s = 'X'; String string = s + s;

于 2013-08-13T19:00:32.597 回答