Java如何连接两个字符串?

Java如何连接两个字符串?,java,string,concatenation,Java,String,Concatenation,为什么下面打印的是197,而不是“bc” System.out.println('b' + 'c'); 有人能解释一下如何在Java上进行适当的连接吗 另外,我学习了一些Python,现在正在学习Java。

为什么下面打印的是197,而不是“bc”

System.out.println('b' + 'c');
有人能解释一下如何在Java上进行适当的连接吗


另外,我学习了一些Python,现在正在学习Java。

Java
中不是
字符串,而是
char
。然后
'b'+'c'
打印
197

但是如果您使用
“b”+“c”
这将打印
bc
,因为
用于表示
字符串

System.out.println("b" + "c"); // prints bc

'b'
'c'
不是
String
s,它们是
char
s。您应该使用双引号
“…”

System.out.println("b" + "c");
您将获得一个
int
,因为您正在添加以下字符:

System.out.println((int) 'b'); // 98
System.out.println((int) 'c'); // 99
System.out.println('b' + 'c'); // 98 + 99 = 197

使用
+
连接字符会将字符的值更改为ascii,从而提供数字输出。如果希望将
bc
作为输出,则需要将
b
c
作为字符串。目前,您的
b
c
是Java中的字符


在Java中,字符串文字应该用
包围,字符用

是单引号是字符,双引号代表字符串,因此:

System.out.println("b" + "c");
一些替代方案可以是:

"" + char1 + char2 + char3;
或:


在Java中,字符串文本用双引号表示-
“”

您所做的是将两个
char
值添加到一起。你想要的是:

System.out.println("b" + "c"); // bc
您的代码的问题是它添加了
chars
的值,得到了
197

'b'
的ASCII值为
98
'c'
的ASCII值为
99

所以事情是这样的:

System.out.println('b' + 'c'); // 98 + 99 = 197

关于
字符的ASCII值,请注意:

char数据类型是单个16位Unicode字符

从。但是,就我所知,对于一个字节(0-255),字符也可以用ASCII值表示,因为ASCII值直接对应于Unicode代码点值-

我在上面的答案中引用ASCII值的原因是因为256个ASCII值涵盖了所有字母(大写和小写)和标点符号,所以它涵盖了所有主要内容


从技术上讲,我所说的是正确的——它确实添加了ASCII值(因为它们与Unicode值相同)。但是,从技术上讲,它添加了Unicode码点十进制值。

'b'和'c'不是字符串,而是字符。 197是b和c的unicode值之和

对于浓缩字符串,可以使用以下两种方法:

  • System.out.println(“b”+“c”)
  • System.out.println(“b”.concat(“c”)

首先,这些不是弦。字符串文字使用双引号。
197
b
c
的unicode值之和,Python与Python中的Java不同
'b'
'c'
是Java中的字符串,它们是字符文字,字符串文字必须双引号
Java语言规范将
char
s定义为编码Unicode代码点的UTF-16代码单元,而不是ASCII值。@我知道字符是用Unicode字符表示的。不过,ASCII值与此很好地对应以作解释。@mikeyaworski Unicode索引对应得更好,因为它们实际上在这里使用。@Pshemo我很难找到Unicode索引如何将
'b'
表示为
98
。我只是说,在这类问题上,向人们指出ASCII方向比较容易,因为ASCII值(我认为是一个字节)是一样的。@mikeyaworski然后在你的答案中的注释中指出它。您知道技术细节,但人们可能不知道。
。append(“”
是多余的。
System.out.println('b' + 'c'); // 98 + 99 = 197