StringBuilder如何拼接(截取)想要的字符串
StringBuilder拼接(截取)想要的字符串
字符串拼接
import java.util.ArrayList; /* * 用StringBuilder拼接想要的字符串 * 開發(fā)中可用來拼接查詢條件等,新手一枚,有小伙伴有更好的方法可以分享一下哦,如有錯誤請指正,萬分感謝 * */ public class testStringBuilder { public static void main(String[] args) { StringBuilder sb =new StringBuilder(); ArrayList<String> list = new ArrayList<>();//定義一個List并往其中添加字符串(四個序列號) list.add("2022121212"); list.add("2022121211"); list.add("2022121213"); list.add("2022121214"); System.out.println("輸出原List為:"+list);//輸出原List for (int i = 0; i <list.size() ; i++) { //循環(huán)取出list中字符串元素,用三元表達式判斷是否是最后一個元素,如果是最后一個元素就不需要拼接逗號 //我自己開發(fā)中,需要用IN條件查詢數(shù)據(jù)庫, // select *from user_info where serinalno in ('2022121212','2022121211','2022121213','2022121214'); // 想到用拼接字符串方法查詢數(shù)據(jù)庫,故記錄一下 sb = (i!=list.size()-1) ?sb.append("'" + list.get(i) + "',"):sb.append("'" + list.get(i) + "'"); } System.out.println(sb);//輸出拼接好的字符串 } }
拼接字符串可以用到兩種不同的類:
- 一種是StringBuild
- 另一種為StringBuffer
和String類不同的時,StringBuild和StringBuffer能夠被多次修改,且不產(chǎn)生新的未使用的對象。
在使用 StringBuffer 類時,每次都會對 StringBuffer 對象本身進行操作,而不是生成新的對象,所以如果需要對字符串進行修改推薦使用 StringBuffer。
StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。
由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢,所以多數(shù)情況下建議使用 StringBuilder 類。
三元表達式使用:
上面例子種如果不使用三元表達式,也可以這樣寫,效果一樣,三元表達式使代碼更簡潔,推薦使用三元表達式
在這里插入代碼片 ```import java.util.ArrayList; /* * 用StringBuilder拼接想要的字符串 * 開發(fā)中可用來拼接查詢條件等,新手一枚,有小伙伴有更好的方法可以分享一下哦,如有錯誤請指正,萬分感謝 * */ public class testStringBuilder { public static void main(String[] args) { StringBuilder sb =new StringBuilder(); ArrayList<String> list = new ArrayList<>();//定義一個List并往其中添加字符串(四個序列號) list.add("2022121212"); list.add("2022121211"); list.add("2022121213"); list.add("2022121214"); System.out.println("輸出原List為:"+list);//輸出原List for (int i = 0; i <list.size() ; i++) { // sb = (i!=list.size()-1 ?sb.append("'" + list.get(i) + "',"):sb.append("'" + list.get(i) + "'"); if (i != list.size() - 1) { sb.append("'" + list.get(i) + "',"); } else { sb.append("'" + list.get(i) + "'"); } } System.out.println(sb);//輸出拼接好的字符串 } } //三元表達式語法 // (關(guān)系表達式) ? 表達式1 : 表達式2; //關(guān)系表達式為true,則執(zhí)行表達式1,否則執(zhí)行表達式2 //輸出最大年齡 // int dadAge = 39; // int mamAge = 37; // int max = mamAge > dadAge ? mamAge : dadAge; // System.out.println("年齡最大為:"+max+"歲");
字符串截取
字符串截取用substring(),它可截取字符串某部分,語法 string.substring(from, to)
例如:
public class testSubString { public static void main(String[] args) { //截取身份證信息的出身年月日 String idCard="532165200010104361"; System.out.println(idCard.substring(6,14));//這里6對應(yīng)上面數(shù)字的第八位(開始截取的位置),14對應(yīng)上面數(shù)字的第15位(截止截取的位置) //輸出如下: // 20001010 } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA配置靜態(tài)資源熱加載操作(Springboot修改靜態(tài)資源不重啟)
這篇文章主要介紹了IDEA配置靜態(tài)資源熱加載操作(Springboot修改靜態(tài)資源不重啟),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10Mybatis-Plus使用p6spy對SQL性能進行監(jiān)控的方法
這篇文章主要介紹了Mybatis-Plus使用p6spy對SQL性能進行監(jiān)控的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12SpringBoot調(diào)用第三方WebService接口的兩種方法
本文主要介紹了SpringBoot調(diào)用第三方WebService接口的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06SpringBoot+kaptcha實現(xiàn)驗證碼花式玩法詳解
這篇文章主要想和大家聊聊kaptcha的用法,畢竟這個已經(jīng)有16年歷史的玩意還在有人用,說明它的功能還是相當強大的,感興趣的小伙伴可以了解一下2022-05-05mybatis-plus配置攔截器實現(xiàn)sql完整打印的代碼設(shè)計
在使用mybatis-plus(mybatis)的時候,往往需要打印完整的sql語句,然而輸出的日志不是很理想,因為sql語句中的關(guān)鍵字段信息都是用?來代替的,所以本文分享了一下自己寫了一個攔截器實現(xiàn)了sql完整的打印,需要的朋友可以參考下2024-06-06關(guān)于JSON.toJSONString()和Gson.toJson()方法的比較
本文介紹了兩種將Java對象轉(zhuǎn)換為JSON字符串的方法:阿里的`JSON.toJSONString()`和谷歌的`Gson.toJson()`,通過一個示例,展示了當使用繼承關(guān)系且子類覆蓋父類字段時,`Gson`會報錯,而`JSON`可以正常運行,作者建議在處理JSON相關(guān)操作時使用阿里的`JSON`類2024-11-11