import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
public class DataTableProcessor { 
    public static void main(String[] args) { 
        // 초기 DataTable을 List of Map으로 가정 
        List<Map<String, String>> result_dt = new ArrayList<>(); 
        // 예시 데이터 추가 
        Map<String, String> row1 = new HashMap<>(); 
        row1.put("Column1", "1234$1233$5555"); 
        row1.put("Column2", "SomeValue1"); 
        result_dt.add(row1); 
        Map<String, String> row2 = new HashMap<>(); 
        row2.put("Column1", "8888$9999"); 
        row2.put("Column2", "SomeValue2"); 
        result_dt.add(row2); 
        // 변환된 결과를 저장할 리스트 
        List<Map<String, String>> transformed_dt = new ArrayList<>(); 
        // 각 행을 처리하여 Column1의 값을 분리하고 행을 확장 
        for (Map<String, String> row : result_dt) { 
            String column1Value = row.get("Column1"); 
            String column2Value = row.get("Column2"); 
            // Column1의 값을 '$' 구분자로 분할 
            String[] splitValues = column1Value.split("\\$"); 
            // 각 분할된 값으로 새로운 행을 생성하고 transformed_dt에 추가 
            for (String value : splitValues) { 
                Map<String, String> newRow = new HashMap<>(); 
                newRow.put("Column1", value); 
                newRow.put("Column2", column2Value);  // Column2 값은 동일하게 유지 
                transformed_dt.add(newRow); 
            } 
        } 
        // 결과 출력 
        System.out.println("Transformed DataTable:"); 
        for (Map<String, String> row : transformed_dt) { 
            System.out.println(row); 
        } 
    } 
}
코드 설명
- 초기화 및 데이터 설정:
- result_dt는 원본 데이터가 담긴 리스트로, 각 행은 Map<String, String> 구조를 사용하여 각 열을 키-값 쌍으로 저장합니다.
- Column1에는 $로 구분된 문자열, Column2에는 다른 값이 들어 있습니다.
 
- 반복문을 통한 데이터 변환:
- result_dt의 각 행을 순회하며 Column1의 값을 $를 기준으로 분할합니다.
- splitValues 배열의 각 요소는 새로운 행의 Column1 값이 됩니다. Column2 값은 원본 데이터와 동일하게 유지됩니다.
 
- 변환된 데이터 추가:
- 분할된 각 값에 대해 새로운 Map<String, String>을 생성하고, transformed_dt 리스트에 추가하여 변환된 데이터 테이블을 생성합니다.
 
'정리 > Language' 카테고리의 다른 글
| java code 분석기 (1) | 2024.11.19 | 
|---|---|
| [Python] 코드 블럭, 괄호 표기, 괄호 힌트 (Code Block, Bracket Notation) (0) | 2023.11.08 | 
| 비전공자가 본 "c 프로그래밍" 저자 윤성우 후기 (1) | 2015.11.06 | 
