1 对字符串数组按组容量进行分组
[1,2,3,4]---->[[1,3],[2,4]]
[1,2,3]---->[[1,3],[2]]
/**
* 根据组容量,对一个数组的元素进行分组,组件元素个数差值不超过1
*
* @param arr 要进行分组的数组
* @param group_size 组的最大容量
* @return 返回字符串数组
*/
public static String[] fenzu(String[] arr, int group_size) {
// 1 组容量异常处理
if (group_size < 1) {
group_size = 1;
}
// 2 获取分组数
int group_num = (int) Math.ceil(1.0 * arr.length / group_size);
// 3 定义变量, 循环找出每组的元素
StringBuilder res_str = new StringBuilder();
for (int i = 0; i < group_num; i++) {
// 当前组元素获取,(注意: 步距为组数)
StringBuilder tmp_str = new StringBuilder();
for (int j = i; j < arr.length; j += group_num) {
tmp_str.append(",").append(arr[j]);
}
// 保存当前组元素
res_str.append(i + 1).append("=").append(tmp_str.toString().substring(1));
// 增加组间分隔符
if (i + 1 < group_num) {
res_str.append("|");
}
}
// 3 返回结果
return res_str.toString().split("\\|");
}