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拼接时候的一个小问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IDEA(2022.2)搭建Servlet基本框架超详细步骤
这篇文章主要给大家介绍了关于IDEA(2022.2)搭建Servlet基本框架超详细步骤,Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用"请求/响应"的模式,需要的朋友可以参考下2023-10-10
关于mybatis-plus-generator的简单使用示例详解
在springboot项目中集成mybatis-plus是很方便开发的,最近看了一下plus的文档,简单用一下它的代码生成器,接下来通过实例代码讲解关于mybatis-plus-generator的简单使用,感兴趣的朋友跟随小编一起看看吧2024-03-03
SpringMVC @RequestBody出现400 Bad Request的解决
这篇文章主要介绍了SpringMVC @RequestBody出现400 Bad Request的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-04-04


最新评论