Java如何连接2个字符串?

时间:2014-02-10 05:04:17

标签: java string concatenation

为什么以下打印197,而不是'bc'?

System.out.println('b' + 'c');

有人可以解释如何在Java上进行适当的连接吗?

P.S。我学习了一些Python,现在转而学习Java。

6 个答案:

答案 0 :(得分:6)

'b''c'不是String,而是char。您应该使用双引号"..."代替:

System.out.println("b" + "c");

您收到int,因为您要添加unicode values这些字符:

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

答案 1 :(得分:1)

'b'不是String Java char。然后'b'+'c'打印197

但如果您使用"b"+"c",则会打印bc,因为""用于表示String

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

答案 2 :(得分:1)

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

在Java中,字符串文字应该被""包围,字符被''包围

答案 3 :(得分:1)

是单引号是Char,而双引号代表字符串,所以:

System.out.println("b" + "c");

一些替代方案可以是:

"" + char1 + char2 + char3;

或:

new StringBuilder().append('b').append('c').toString();

答案 4 :(得分:1)

在Java中,字符串文字用双引号表示 - ""

您所做的是将两个char值相加。你想要的是:

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

您的代码发生的情况是,它添加了chars的{​​{3}}值来提出197

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

所以它是这样的:

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

作为注释,我参考了chars

的ASCII值
  

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

来自ASCII。但是,对于一个字节(0-255),据我所知,chars可以用它们的ASCII值表示,因为ASCII值直接对应于Unicode代码点价值观 - Docs

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

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

答案 5 :(得分:1)

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

对于Concatinating String,您可以使用以下两种方式:

  • System.out.println("b"+"c");
  • System.out.println("b".concat("c"));
相关问题