java String拼接时的问题汇总
刚才发现了一个小问题,比如我们设置一个字符串对象test并初始化为null,然后执行test+="abc";,此时test的值不是abc,而是nullabc。这是因为我们实际上是让test="abc"+null;,此时null会被强制转为String类型,其值就是"null".例如下面的例子:
Stringtest=null+"abc"; System.out.println(test);
输出就是nullabc
所以我们在使用+=运算符的时候要先判断是不是null,如果是的话应该直接赋值
话又说回来,熟悉String原理就能知道,如果使用+=来创建字符串,会在字符串常量池中产生很多不需要的子串对象,所以不鼓励使用String的拼接方式一步步创建字符串,应该使用StringBuilder和append()方法。这些类的对象能够被多次的修改,并且不产生新的未使用对象。
并且这两个类是提供了append()方法的,可以传入char或者String,使用很方便。最后要输出字符串的时候直接toString()即可。
内容扩展:
java拼接字符串、格式化字符串方式
//+ Stringarg0="Bob"; Stringarg1="Alice"; System.out.println("hello,"+arg0+".Iam"+arg1+"."); //StringBuilder.append StringBuilderbuilder=newStringBuilder(); builder.append("hello,"); builder.append(arg0); builder.append(".Iam"); builder.append(arg1); builder.append("."); System.out.println(builder.toString()); //String.format StringformatStr=String.format("hello,%s.Iam%s.",arg0,arg1); System.out.println(formatStr); //MessageFormat.format StringformattedText=MessageFormat.format("hello,{0}.Iam{1}.",arg0,arg1); System.out.println(formattedText);
2.运行结果
hello,Bob.IamAlice.
hello,Bob.IamAlice.
hello,Bob.IamAlice.
hello,Bob.IamAlice.
到此这篇关于javaString拼接时的问题汇总的文章就介绍到这了,更多相关javaString拼接时候的一个小问题内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。