将以逗号分隔的id字符串按每20个id截取分组

来源:互联网 发布:tomcat怎么改端口号 编辑:程序博客网 时间:2024/06/05 14:12

       我这里id字符串形如:

String a="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30"+",31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62";
    因为我们有一个按id批量查询的接口,查询的id之间用逗号隔开,但一次最多支持查询20个;而我每次查询所用到的id是从消息队列里面取出来的,数量可能远大于20个,所以要每隔20个id截取一下,分批查询,工具类如下:

public static void intercept(String a){        String [] b=a.split(",");    int splitLength=20;    int start=0;    int end=start+splitLength;    while (end<b.length){        StringBuilder builder=new StringBuilder();        for (int i = start; i < end; i++) {            builder.append(b[i] + ",");        }        String str=builder.toString();        String c=str.substring(0,str.lastIndexOf(","));        System.out.println(c);        start=end;        end=end+splitLength;    }    if(start<=b.length){        StringBuilder builder=new StringBuilder();        for (int i = start; i <b.length; i++) {            builder.append(b[i] + ",");        }        String c=builder.substring(0,builder.lastIndexOf(","));        System.out.println(c);    }
    将如上a字符串传入这个方法后,控制台运行结果为:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40
41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60
61,62

    如果用在生产环境,在方法中再添加一个list,截取好的都放进list中返回就行了;然后循环list,传入截取好的id列表去查询接口

阅读全文
0 0