java String拼接時的問題匯總
剛才發(fā)現(xiàn)了一個小問題,比如我們設(shè)置一個字符串對象test并初始化為null,然后執(zhí)行test+="abc";,此時test的值不是abc,而是nullabc。這是因為我們實際上是讓test="abc"+null;,此時null會被強制轉(zhuǎn)為String類型,其值就是"null".例如下面的例子:
String test=null+"abc"; System.out.println(test);
輸出就是nullabc
所以我們在使用+=運算符的時候要先判斷是不是null,如果是的話應(yīng)該直接賦值
話又說回來,熟悉String原理就能知道,如果使用+=來創(chuàng)建字符串,會在字符串常量池中產(chǎn)生很多不需要的子串對象,所以不鼓勵使用String的拼接方式一步步創(chuàng)建字符串,應(yīng)該使用StringBuilder 和append()方法。這些類的對象能夠被多次的修改,并且不產(chǎn)生新的未使用對象。
并且這兩個類是提供了append()方法的,可以傳入char或者String,使用很方便。最后要輸出字符串的時候直接toString()即可。
內(nèi)容擴展:
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.運行結(jié)果
hello,Bob. I am Alice.
hello,Bob. I am Alice.
hello,Bob. I am Alice.
hello,Bob. I am Alice.
到此這篇關(guān)于java String拼接時的問題匯總的文章就介紹到這了,更多相關(guān)java String拼接時候的一個小問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java內(nèi)部類持有外部類導(dǎo)致內(nèi)存泄露的原因與解決方案詳解
這篇文章主要為大家詳細介紹了Java因為內(nèi)部類持有外部類導(dǎo)致內(nèi)存泄露的原因以及其解決方案,文中的示例代碼講解詳細,希望對大家有所幫助2022-11-11
IDEA(2022.2)搭建Servlet基本框架超詳細步驟
這篇文章主要給大家介紹了關(guān)于IDEA(2022.2)搭建Servlet基本框架超詳細步驟,Servlet容器負責(zé)Servlet和客戶的通信以及調(diào)用Servlet的方法,Servlet和客戶的通信采用"請求/響應(yīng)"的模式,需要的朋友可以參考下2023-10-10
關(guān)于mybatis-plus-generator的簡單使用示例詳解
在springboot項目中集成mybatis-plus是很方便開發(fā)的,最近看了一下plus的文檔,簡單用一下它的代碼生成器,接下來通過實例代碼講解關(guān)于mybatis-plus-generator的簡單使用,感興趣的朋友跟隨小編一起看看吧2024-03-03
SpringMVC @RequestBody出現(xiàn)400 Bad Request的解決
這篇文章主要介紹了SpringMVC @RequestBody出現(xiàn)400 Bad Request的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04

