为什么我可以在字符串中添加字符而不是字符添加字符?

时间:2013-08-13 18:58:10

标签: java string char add concat

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

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

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

String string = "" + s + s;

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

7 个答案:

答案 0 :(得分:6)

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

尽管其他答案告诉你,但Char + Char仍然是int。

String 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 ( ).

答案 1 :(得分:4)

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

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

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

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

答案 2 :(得分:2)

在Java中,char是一个基本的整数数字类型。因此,运算符+被定义为表示两个字符的加法,结果为int。运算符仅表示字符串的连接。所以一种方法是

"" + char1 + char2

这会将右侧操作数强制转换为字符串,这是您想要实现的。

一个侧面点:char是Java中唯一的无符号原始数字类型,在我的一个项目中我特意使用它。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

String string =“”+ X + X;

是连接的示例。通过预先挂起空字符串,您可以指定结果应该是字符串。第一行代码告诉编译器你要添加2个字符(或整数),这应该产生一个int,而不是一个字符串。

答案 6 :(得分: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");