当我将单个字符与字符串连接起来时,我应该为单个字符选择什么样的引号?
String s1="string";
我应该使用
String s2=s1+'c';
或者
String s2=s1+"c";
答案 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'),因为这会减少开销!