StringBuilder如何拼接(截取)想要的字符串
作者:bpmh
文章主要介绍了Java中字符串操作的两种常用类StringBuilder和StringBuffer,以及三元表达式的使用和字符串截取的方法
StringBuilder拼接(截取)想要的字符串
字符串拼接
import java.util.ArrayList; /* * 用StringBuilder拼接想要的字符串 * 开发中可用来拼接查询条件等,新手一枚,有小伙伴有更好的方法可以分享一下哦,如有错误请指正,万分感谢 * */ 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++) { //循环取出list中字符串元素,用三元表达式判断是否是最后一个元素,如果是最后一个元素就不需要拼接逗号 //我自己开发中,需要用IN条件查询数据库, // select *from user_info where serinalno in ('2022121212','2022121211','2022121213','2022121214'); // 想到用拼接字符串方法查询数据库,故记录一下 sb = (i!=list.size()-1) ?sb.append("'" + list.get(i) + "',"):sb.append("'" + list.get(i) + "'"); } System.out.println(sb);//输出拼接好的字符串 } }
拼接字符串可以用到两种不同的类:
- 一种是StringBuild
- 另一种为StringBuffer
和String类不同的时,StringBuild和StringBuffer能够被多次修改,且不产生新的未使用的对象。
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
三元表达式使用:
上面例子种如果不使用三元表达式,也可以这样写,效果一样,三元表达式使代码更简洁,推荐使用三元表达式
在这里插入代码片 ```import java.util.ArrayList; /* * 用StringBuilder拼接想要的字符串 * 开发中可用来拼接查询条件等,新手一枚,有小伙伴有更好的方法可以分享一下哦,如有错误请指正,万分感谢 * */ 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);//输出拼接好的字符串 } } //三元表达式语法 // (关系表达式) ? 表达式1 : 表达式2; //关系表达式为true,则执行表达式1,否则执行表达式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对应上面数字的第八位(开始截取的位置),14对应上面数字的第15位(截止截取的位置) //输出如下: // 20001010 } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。