欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java String拼接時的問題匯總

 更新時間:2020年02月27日 10:29:41   作者:別再鬧了  
在本篇文章里小編給大家整理的是關(guān)于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)文章

  • 解決StringBuffer和StringBuilder的擴容問題

    解決StringBuffer和StringBuilder的擴容問題

    這篇文章主要介紹了解決StringBuffer和StringBuilder的擴容問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring的@Autowired加到接口上但獲取的是實現(xiàn)類的問題

    Spring的@Autowired加到接口上但獲取的是實現(xiàn)類的問題

    這篇文章主要介紹了Spring的@Autowired加到接口上但獲取的是實現(xiàn)類的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • quarzt定時調(diào)度任務(wù)解析

    quarzt定時調(diào)度任務(wù)解析

    這篇文章主要介紹了quarzt定時調(diào)度任務(wù),具有一定參考價值,需要的朋友可以了解下。
    2017-12-12
  • java判斷中文字符串長度的簡單實例

    java判斷中文字符串長度的簡單實例

    下面小編就為大家?guī)硪黄猨ava判斷中文字符串長度的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java多線程之 FutureTask:帶有返回值的函數(shù)定義和調(diào)用方式

    Java多線程之 FutureTask:帶有返回值的函數(shù)定義和調(diào)用方式

    這篇文章主要介紹了Java多線程之 FutureTask:帶有返回值的函數(shù)定義和調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java實現(xiàn)利用String類的簡單方法讀取xml文件中某個標簽中的內(nèi)容

    java實現(xiàn)利用String類的簡單方法讀取xml文件中某個標簽中的內(nèi)容

    下面小編就為大家?guī)硪黄猨ava實現(xiàn)利用String類的簡單方法讀取xml文件中某個標簽中的內(nèi)容。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 解決myBatis中openSession()自動提交的問題

    解決myBatis中openSession()自動提交的問題

    在學(xué)習MySQL過程中,發(fā)現(xiàn)插入操作自動提交,問題原因可能是myBatis中的openSession()方法設(shè)置了自動提交,或者是MySQL的默認引擎設(shè)置為不支持事務(wù)的MyISAM,解決辦法包括更改myBatis的提交設(shè)置或?qū)ySQL表的引擎改為InnoDB
    2024-09-09
  • 詳解Mybatis的分頁插件

    詳解Mybatis的分頁插件

    這篇文章主要介紹了詳解Mybatis的分頁插件,在 Mybatis中,如何對數(shù)據(jù)進行分頁是一個非常常見的問題,現(xiàn)在,我們可以通過使用 Mybatis 的分頁插件來實現(xiàn)對數(shù)據(jù)的分頁,需要的朋友可以參考下
    2023-05-05
  • Java多線程之死鎖的出現(xiàn)和解決方法

    Java多線程之死鎖的出現(xiàn)和解決方法

    本篇文章主要介紹了Java多線程之死鎖的出現(xiàn)和解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 基于SpringBoot+Redis的Session共享與單點登錄詳解

    基于SpringBoot+Redis的Session共享與單點登錄詳解

    這篇文章主要介紹了基于SpringBoot+Redis的Session共享與單點登錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2019-07-07

最新評論