将字符串与单个字符连接时引用标记

时间:2016-11-10 07:50:50

标签: java

当我将单个字符与字符串连接起来时,我应该为单个字符选择什么样的引号?

String s1="string";

我应该使用

String s2=s1+'c';

或者

String s2=s1+"c";

5 个答案:

答案 0 :(得分:2)

你可以同时使用!试一试!

"为什么"你问。这里的神奇之处在于+运算符。

+与字符串一起使用时,它会自动将另一个操作数转换为字符串!这就是为什么它可以与'c'一起使用,这是一个字符文字。它也可以与"c"一起使用,因为"c"当然是一个字符串文字。

不仅如此,您甚至可以将整数添加到字符串中:

String s2=s1+1;

答案 1 :(得分:1)

你可以用两种不同的方式使用它:String s2=s1+'c'; char x = 'c'; String s2 = s1 + x;

答案 2 :(得分:0)

两种方法都可以,但如果你要详细介绍那么可能

String s2=s1+'c';

比第二种方式占用的内存少一些,因为char只有两个字节,而String需要8个以上的字节。但我不认为这种细微差别在大多数情况下都很重要,而且我甚至不确定这种差异是否会存在,因为JVM可能会优化它

答案 3 :(得分:0)

Java自动为你做转换,所以它并不重要,但我个人只是使​​用一个字符串(双引号)只是因为我个人更喜欢最小化“自动东西”,如果我可以防止它

另外,如果您认为'c'应该是'csomething',那么无论如何您都必须将其更改为boudle引用。

但我想我只是在挑剔......

答案 4 :(得分:0)

这是两种不同类型的投射:隐式投射显式投射

String s2=s1+'c';

这是一个隐式转换,这意味着魔术由编译器完成(无开销)。

String s2=s1+"c";

这是一个明确的演员,因为" c"转换为如下对象:

Object o = "c";
String s2 = (String) o;

这意味着必须检查转换的空指针,这将产生开销。

因此,虽然两种方式都有效,但我更喜欢使用角色(' c'),因为这会减少开销!

来源:http://www.javaworld.com/article/2076555/build-ci-sdlc/java-performance-programming--part-2--the-cost-of-casting.html