所以我想在字符串中添加一个字符,并且在某些情况下想要将这些字符加倍,然后将其添加到字符串中(即首先添加到字符串中)。我尝试了这个,如下所示。
char s = 'X';
String string = s + s;
这引发了一个错误,但我已经在字符串中添加了一个字符,所以我尝试了:
String string = "" + s + s;
哪个有效。为什么在求和中包含一个字符串会导致它起作用?是否添加了一个字符串属性,当字符由于存在字符串而转换为字符串时,只能由字符使用?
答案 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");