天天看點

對數組元素進行分組1 對字元串數組按組容量進行分組

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("\\|");
}