将list的内容转换成固定个数的分组字符串

最近需要做一个短信提醒的接口,其中需要根据一个接收人列表拆分成40人一组的字符串,脑子一下短路,居然调试了四个小时才搞出来,悲剧呀!

list 里每个元素为 Receiver对象,其中一个属性是手机号码 getMobile(),现在需要每40个人就生成一个以分号分隔的字符串。

makeMobileList(receivers, 40);

 

        /*  按每次发送人数进行拆分接收人
         *  re: 接收人清单
         *  rowCount: 每次发送人数
         *  return : 拆分后的接收人清单,以分号间隔
         */
        public ArrayList makeMobileList(List re, int rowCount) {
            ArrayList ret = new ArrayList();
            StringBuffer sb = new StringBuffer();
            int i = 0;
            for (int j = 0; j < re.size(); j++) {
                Receiver receiver = (Receiver) re.get(j);
                if (sb.length() == 0) {
                    sb.append(receiver.getMobile()); 
                } else {
                    sb.append(";").append(receiver.getMobile());
                }

                i++;
                if (re.size() > rowCount) {
                    if (i == rowCount) {
                        ret.add(sb);
                        sb = new StringBuffer();
                        i = 0;
                    }
                }
                if (j == re.size() - 1) {
                    ret.add(sb);
                }
            }

            return ret;
        }
posted @ 2017-04-17 09:17  幼儿园园长  阅读(452)  评论(0)    收藏  举报