gpt4 book ai didi

java - 连接运算符和 concat() 如何执行任何任务

转载 作者:行者123 更新时间:2023-12-01 15:48:13 25 4
gpt4 key购买 nike

我可以使用连接运算符(+)concat() 方法进行字符串连接

String myData = "a"+"b";            // using concatenation operator
String myData = "a".concat("b"); // using concat() of String

但是要将字符串与整数连接起来,我不能直接使用 concat() 。所以我必须使用以下逻辑之一

String myData = "a"+5;
String myData = "a".concat(String.valueOf(5));

但是当我想使用串联运算符和 concat 时,我在下面的行中发现了一些奇怪的事情

String myData = "a"+null;              //output =  anull
String myData = "a".concat(String.valueOf(5)); // output = NullPointerException
or
String myData = "a".concat(null); // output = NullPointerException

我脑子里出现了以下问题

1) How concat() method and concatenation operator works what is the difference in their logic of performing any task?
2) Can we really concat a null using (+) if so why concat() method cannot achieve the same

谢谢

最佳答案

1) + 运算符(生成 String)总是经过中间的 StringBuilder (或 StringBuffer > 如果针对 1.5 之前的旧平台(7(七)年前发布))。对于连接两个或三个 Strings concat 由于缺少中间过程,通常会更快。但是,对于较长的连接,+ 将获胜,因为中间分配会更少。

2) null 通常表示错误(很可能是设计错误)。一般来说,应该尽早报告错误,String.concat 就是这样做的。但是,+StringBuilder 连接通常用于生成调试字符串,因此可以容忍 null 并生成适合调试的结果(但不适合调试)用户界面!)。

关于java - 连接运算符和 concat() 如何执行任何任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com