투케이2K

244. (java/자바) 배열 (array) 특정 개수 별 그룹 (group) 묶음 수행 및 로직 처리 본문

Java

244. (java/자바) 배열 (array) 특정 개수 별 그룹 (group) 묶음 수행 및 로직 처리

투케이2K 2022. 3. 9. 13:34
반응형

[개발 환경 설정]

개발 툴 : Eclipse

개발 언어 : Java

 

[소스 코드]

package ex;

import java.util.ArrayList;
import java.util.Arrays;

public class MainActivity7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[Program Start]");
		System.out.println("");
		
		
		/* [요약 설명]
		 * 1. split : 특정 문자 기준으로 문자열을 분리할 수 있습니다.
		 * 2. 로직 : 배열 특정 개수 별로 그룹 수행 >> 그룹별 로직 처리 실시
		 * */
		
		
		
		// [초기 문자열 데이터 선언 실시]
		String strData = "1^2^3^4^5^6^7^8^8^10^11^12";
		
		System.out.println("strData [문자열 데이터] : " + strData);
		System.out.println("");
		
		
		
		
		
		// [split 을 사용해서 특정 문자 기준으로 데이터를 잘라서 배열에 삽입]
		String arr[] = strData.split("\\^");
		
		System.out.println("arr [배열 데이터] : " + Arrays.toString(arr));
		System.out.println("length [배열 길이] : " + arr.length);
		System.out.println("");
		
		
		
		
		
		// [배열 데이터에서 특정 값 기준으로 그룹핑 수행 실시]
		// ===========================================
		String groupData = ""; // 그룹 데이터
		int MAX_GROUP = 5; // 그룹 개수
		String GROUP_CONNECT = "^"; // 그룹 결합 문자 
		
		// ===========================================
		if (arr.length > MAX_GROUP) { // 배열 길이가 그룹 개수 초과로 포함된 경우
			
			for (int i=0; i<arr.length; i++) {
				if (i != 0 && (i % MAX_GROUP == 0)) { // 0번째 인덱스가 아니고, 그룹 개수로 나누어 떨어진 경우
					System.out.println("그룹 데이터 [MAX_GROUP] [초과] : " + groupData);
					System.out.println("");
					
					
					// TODO [로직 처리 실시]
					
					
					// [변수값 초기화]
					groupData = "";
					
					
					// [해당 번지 그룹으로 나누어떨어진 데이터 삽입]
					groupData = groupData + arr[i]; // 그룹 데이터 만듦	
				}
				else { // 0번째 인덱스 인 경우나, 그룹 개수로 나누어 떨어지지 않은 경우
					if (i != 0) { // 0 번지 인덱스가 아닌 경우
						groupData = groupData + GROUP_CONNECT + arr[i]; // 그룹 데이터 만듦	
					}
					else { // 0 번지 인덱스 인 경우
						groupData = groupData + arr[i]; // 그룹 데이터 만듦
					}
				}
			}
			// [그룹 개수 이외 나머지 잔여 출력]
			System.out.println("그룹 데이터 [MAX_GROUP] [나머지] : " + groupData);
			System.out.println("");
			
			
			// TODO [로직 처리 실시]
		}
		// ===========================================
		else { // 배열 길이가 그룹 개수 이하인 경우
			
			for (int j=0; j<arr.length; j++) {
				if (j != 0) { // 0 번지 인덱스가 아닌 경우
					groupData = groupData + GROUP_CONNECT + arr[j]; // 그룹 데이터 만듦	
				}
				else { // 0 번지 인덱스 인 경우
					groupData = groupData + arr[j]; // 그룹 데이터 만듦
				}
			}
			System.out.println("그룹 데이터 [MAX_GROUP] [이하] : " + groupData);
			System.out.println("");
			
			
			// TODO [로직 처리 실시]
		}
		// ===========================================

	} // [메인 종료]

} // [클래스 종료]
 

[결과 출력]

 

 

반응형
Comments