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

java String拼接時的問題匯總

 更新時間:2020年02月27日 10:29:41   作者:別再鬧了  
在本篇文章里小編給大家整理的是關于java String拼接時的問題匯總,有需要的朋友們可以參考下。

剛才發(fā)現了一個小問題,比如我們設置一個字符串對象test并初始化為null,然后執(zhí)行test+="abc";,此時test的值不是abc,而是nullabc。這是因為我們實際上是讓test="abc"+null;,此時null會被強制轉為String類型,其值就是"null".例如下面的例子:

String test=null+"abc";
System.out.println(test);

輸出就是nullabc

所以我們在使用+=運算符的時候要先判斷是不是null,如果是的話應該直接賦值

話又說回來,熟悉String原理就能知道,如果使用+=來創(chuàng)建字符串,會在字符串常量池中產生很多不需要的子串對象,所以不鼓勵使用String的拼接方式一步步創(chuàng)建字符串,應該使用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拼接時候的一個小問題內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決StringBuffer和StringBuilder的擴容問題

    解決StringBuffer和StringBuilder的擴容問題

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

    Spring的@Autowired加到接口上但獲取的是實現類的問題

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

    quarzt定時調度任務解析

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

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

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

    Java多線程之 FutureTask:帶有返回值的函數定義和調用方式

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

    java實現利用String類的簡單方法讀取xml文件中某個標簽中的內容

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

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

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

    詳解Mybatis的分頁插件

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

    Java多線程之死鎖的出現和解決方法

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

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

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

最新評論