가자미의 개발이야기

[자바] 텍스트 읽어서 특정 기호 기준으로 나누기 본문

Java/자바 기본 문법

[자바] 텍스트 읽어서 특정 기호 기준으로 나누기

가자미 2021. 2. 28. 22:07

다음과 같이 탭을 기준으로 농구 선수 이름과 스탯이 적혀있는 텍스트 파일을 나눠서 저장하려면 어떻게 해야 할까.

안테토쿰보	8	7	2	5	6	7	약	f
브래들리빌	7	2	7	4	8	6	중	g
스테판커리	6	1	10	3	4	5	중	g
루카돈치치	7	4	5	5	9	7	중	g
조엘엠비드	6	9	6	5	6	6	약	c
카이리어빙	7	1	8	3	8	6	강	g
니콜라요키치	7	6	7	4	7	7	강	c
카와이레너드	7	5	7	8	6	5	강	f
제이슨테이텀	6	5	7	7	5	7	약	g
데빈  부커	7	2	7	4	7	7	강	g
폴    조지	6	4	7	8	6	7	중	f
루디고베어	3	10	0	3	3	8	약	c
제임스하든	8	4	8	5	8	9	강	g
잭    라빈	6	3	7	7	5	8	강	g
데미안릴라드	7	2	9	3	7	7	강	g
도노반미첼	7	1	8	3	6	6	중	g
크리스  폴	5	5	7	8	8	6	강	g
줄리어스랜들	6	6	6	6	5	8	약	f
벤  시몬스	7	7	1	9	5	8	약	g
제일런브라운	6	6	5	8	4	7	약	g
니콜라부세비치	7	8	6	5	5	6	약	c
자이온윌리엄슨	9	6	2	8	5	9	약	c
르브론제임스	8	8	8	8	8	7	강	f
케빈듀란트	7	7	9	6	4	5	강	f
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class MakePlayer {
	protected Set<Player> playerData = new HashSet<Player>();
	public Set<Player> loadPlayer() {
		File playerFile = new File("playerWithStat.txt");//파일불러오기
		String[] splitedStr = null;//분리된 스탯 저장하는 배열
		
		try(BufferedReader reader = new BufferedReader
				(new InputStreamReader(new FileInputStream(playerFile),"UTF-8"))){//한글깨짐현상을 막기 위함.
			String line = null;
			splitedStr = null;
			
			while((line=reader.readLine())!=null) {
				splitedStr=null;
				splitedStr=line.split("\t");	//탭에 따라 나눠서 배열에 넣음
				
				for (int i=0;i<splitedStr.length;i++) {
					splitedStr[i]=splitedStr[i].trim();	//스탯 양 옆 공백 제거
				}
				
				playerData.add(new Player(splitedStr[0], Integer.valueOf(splitedStr[1]), Integer.valueOf(splitedStr[2]),
						Integer.valueOf(splitedStr[3]), Integer.valueOf(splitedStr[4]),Integer.valueOf(splitedStr[5]),
						Integer.valueOf(splitedStr[6]),splitedStr[7],splitedStr[8]));	//스탯을 형에 맞게 입력
			}
		}
		catch(IOException e) {
			e.printStackTrace();
			return null;
		}
		return playerData;
	}
}

 

split('해당 문자 포맷팅') 메소드를 통해 분리해낼 수 있다.