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