一、字符串拼接
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 类。
1. 三元表达式使用
上面例子种如果不使用三元表达式,也可以这样写,效果一样,三元表达式使代码更简洁,推荐使用三元表达式
在这里插入代码片
```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
}
}