java String拼接时的问题汇总
刚才发现了一个小问题,比如我们设置一个字符串对象test并初始化为null,然后执行test+='abc';,此时test的值不是abc,而是nullabc。这是因为我们实际上是让test='abc'+null;,此时null会被强制转为String类型,其值就是'null'.例如下面的例子:
String test=null+'abc';System.out.println(test);
输出就是nullabc
所以我们在使用+=运算符的时候要先判断是不是null,如果是的话应该直接赋值
话又说回来,熟悉String原理就能知道,如果使用+=来创建字符串,会在字符串常量池中产生很多不需要的子串对象,所以不鼓励使用String的拼接方式一步步创建字符串,应该使用StringBuilder 和append()方法。这些类的对象能够被多次的修改,并且不产生新的未使用对象。
并且这两个类是提供了append()方法的,可以传入char或者String,使用很方便。最后要输出字符串的时候直接toString()即可。
内容扩展:
java拼接字符串、格式化字符串方式
//+ String arg0 = 'Bob'; String arg1 = 'Alice'; System.out.println('hello,' + arg0 + '. I am ' + arg1 + '.'); //StringBuilder.append StringBuilder builder = new StringBuilder(); builder.append('hello,'); builder.append(arg0); builder.append('. I am '); builder.append(arg1); builder.append('.'); System.out.println(builder.toString()); //String.format String formatStr = String.format('hello,%s. I am %s.', arg0, arg1); System.out.println(formatStr); //MessageFormat.format String formattedText = MessageFormat.format('hello,{0}. I am {1}.', arg0, arg1); System.out.println(formattedText);
2.运行结果
hello,Bob. I am Alice.hello,Bob. I am Alice.hello,Bob. I am Alice.hello,Bob. I am Alice.
到此这篇关于java String拼接时的问题汇总的文章就介绍到这了,更多相关java String拼接时候的一个小问题内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. 利用VS2019创建Web项目并发送到IIS及IIS与ASP.NET配置教程2. jsp request.getParameter() 和request.getAttribute()方法区别详解3. asp.net web api2设置默认启动登录页面的方法4. python中Task封装协程的知识点总结5. 基于Python爬取51cto博客页面信息过程解析6. 在 .NET MAUI 中加载 json 文件的方法7. Ajax 请求队列解决方案并结合elementUi做全局加载状态8. python实现图片批量压缩9. css列表标签list与表格标签table详解10. Python -m参数原理及使用方法解析

网公网安备