반응형
String.split()를 이용한 데이터 분할하기
CSV파일을 아시나요?
Excel에서 작성한 문서를 CSV형식으로 저장할 수 있습니다.
ASCII형식의 파일로 저장되며, Delimeter(,)를 이용하여 '열'을 구분합니다.
( ※ Cell내에 개행문자가 있을 경우, 쌍따음표( "~" )로 내용을 표시합니다. )
String.split()는
이런 CSV형식의 파일이나, Delimeter(구분자)로 구분된 Data를 읽어 처리할 때 많이 사용합니다.
Delimeter를 이용하여 Data를 분할하는 기능입니다.
엑셀파일의 "데이터 - 텍스트 나누기"와 동일한 기능이라고 보시면 됩니다.
파일을 읽어 String.split()을 이용하여 Data분할을 해보겠습니다.
* 샘플 DATA
* SOURCE
public static void main(String[] args) {
ArrayList arrReadFile = TxtFile.readArr( "C:\\workspace\\Test\\B.dat" );
// 파일의 DATA 출력
for( int i = 0; i < arrReadFile.size(); i++ ) System.out.println( arrReadFile.get( i ) );
// String.split()를 이용한 DATA분할
for( int i = 0; i < arrReadFile.size(); i++ ) {
String[] saRow = arrReadFile.get( i ).split( "," ); // Delimeter( , )로 DATA 분할
// 분할된 데이터 출력
for( int k = 0; k < saRow.length; k++ )
System.out.println( "[" + ( i + 1) + "행][" + ( k + 1 ) + "열] " + saRow[k].trim() ); // Trim()으로 공백 제거
}
}
* RESULT
- 파일의 DATA 출력
이름, 국어, 영어, 수학
홍길동, 10, 20, 30
이순신, 40, 50, 60
- 분할된 데이터 출력
[1행][1열] 이름
[1행][2열] 국어
[1행][3열] 영어
[1행][4열] 수학
[2행][1열] 홍길동
[2행][2열] 10
[2행][3열] 20
[2행][4열] 30
[3행][1열] 이순신
[3행][2열] 40
[3행][3열] 50
[3행][4열] 60
* 설명
ArrayList arrReadFile = TxtFile.readArr( "C:\\workspace\\Test\\B.dat" );
[파일읽기] 소스를 이용하여, 읽은 파일을 ArrayList로 반환하는 클래스입니다.
소스는 위의 링크를 참고하세요.
※ 참고
- 링크 ☞ 파일 핸들링 : 파일 읽기
- String.trim() : 문자열의 '앞/뒤'에 있는 '공백'을 제거한다.
- ArrayList.size() : Array에 들어 있는 Data의 수
끝.
반응형
'Study > Java' 카테고리의 다른 글
JDK( Java SE Development Kit ) 설치하기 (0) | 2020.01.01 |
---|---|
[Java_File] 2차원배열 형태로 텍스트파일 읽기 (0) | 2019.12.21 |
[Java] HashMap를 이용한 데이터 그룹핑하기 (0) | 2019.12.20 |
[Java] 디렉토리 및 하위 디렉토리에 있는 파일목록 추출하기 (0) | 2019.12.20 |
[Java] 디렉토리에 있는 파일목록 추출하기 (0) | 2019.12.20 |