我想在一个字符串中添加一个字符,有时候需要将该字符重复一次后再添加到字符串中(即首先将其加倍)。我尝试了以下代码:
char s = 'X';
String string = s + s;
这引发了一个错误,但我已经向字符串中添加了一个字符,所以我尝试了:
String string = "" + s + s;
这个方法运行成功了,但是为什么在求和时加入字符串会导致它能够正确运行呢?这是因为添加一个字符串属性只有当字符被转为字符串才能使用吗?
我想在一个字符串中添加一个字符,有时候需要将该字符重复一次后再添加到字符串中(即首先将其加倍)。我尝试了以下代码:
char s = 'X';
String string = s + s;
这引发了一个错误,但我已经向字符串中添加了一个字符,所以我尝试了:
String string = "" + s + s;
这个方法运行成功了,但是为什么在求和时加入字符串会导致它能够正确运行呢?这是因为添加一个字符串属性只有当字符被转为字符串才能使用吗?
这是因为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 ( ).
char
而不是 Char
,但无论如何都是关于整数的好句子 :) - keyserchar
,Character
,'char/Character'}?我不确定为什么保留“Char”是更好的妥协?我想自己编辑它,但是想确保我没有漏掉什么... - cellepochar
+ char
返回一个 int
,因此编译器会抱怨 String string = (int)
,这是错误的。
要连接这些字符,你可以在开头使用空字符串 (""
),这样 +
操作符将用于 String
连接,或者使用一个StringBuilder
,它也可以附加字符。
char s = 'X';
String string = new StringBuilder().append(s).append(s).toString();
char
是s
,不是X
。char
+char
=int
。试试这个:char a = 'a',b = 'b',c; c = a + b;
- Luiggi Mendozachar1
+ char2
的结果是 int
,即 UnicodeTable
中 char1
和 char2
位置的总和。因此,对于 'X'+'X'
,结果将为 88 + 88
= 176
,如果 OP 想要转换为 char,则为 °
。 - Pshemochar
是一种原始的整数类型。因此,运算符+被定义为将两个字符相加,并产生一个int
结果。而这个运算符只对字符串执行拼接操作。因此,其中一种方式如下:"" + char1 + char2
char
是唯一的无符号原始数字类型,在我的一个项目中,我专门将其用作这样的类型。 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");
char s = 'X'; String string = X + X;
为什么不改成这样呢?
char s = 'X'; String string = s + s;
在引号中添加 "" 会将返回类型更改为字符串。 如果不加,则返回类型为 char,与之不匹配。
String string = "" + X + X;
是连接的一个例子。通过在空字符串之前添加,您指定结果应该是字符串。代码的第一行告诉编译器您正在添加2个字符(或整数),这应该会产生一个整数,而不是一个字符串。