java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > StringBuilder拼接字符串

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);//输出拼接好的字符串
    }

}

拼接字符串可以用到两种不同的类:

  1. 一种是StringBuild 
  2. 另一种为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
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文