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對應上面數(shù)字的第八位(開始截取的位置),14對應上面數(shù)字的第15位(截止截取的位置)
//輸出如下:
// 20001010
}
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot返回前端Long型丟失精度后兩位變成00的解決
在后端開發(fā)中,當Long類型的ID超過19位時,前端JavaScript可能會出現(xiàn)精度問題,導致最后兩位變成00,本文提出了三種解決方案:將ID轉(zhuǎn)換為字符串、使用@JsonSerialize注解和使用@JsonFormat注解,通過這些方法,可以確保ID在前后端傳輸過程中不會發(fā)生精度丟失2026-01-01
spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實現(xiàn)定時任務
這篇文章主要介紹了spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實現(xiàn)定時任務,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
Springboot中的@ConditionalOnBean注解使用指南與最佳實踐(工作原理)
在使用Spring Boot進行開發(fā)時,大家應該都聽說過條件注解Conditional Annotations,下面給大家聊聊Springboot中的@ConditionalOnBean注解使用指南與最佳實踐,感興趣的朋友一起看看吧2025-05-05
Java中遍歷數(shù)組使用foreach循環(huán)還是for循環(huán)?
這篇文章主要介紹了Java中遍歷數(shù)組使用foreach循環(huán)還是for循環(huán)?本文著重講解for語句的語法并給出使用實例,同時總結(jié)出盡量使用foreach語句遍歷數(shù)組,需要的朋友可以參考下2015-06-06
Java Stream 的 collect 與 reduce 
在 Java Stream API 中,collect?和?reduce?是兩種強大的終止操作,用于將流中的元素累積為最終結(jié)果,本文將從核心概念、使用場景、性能特性等多個維度進行對比分析,感興趣的朋友跟隨小編一起看看吧2025-09-09

