고코딩

CSV파일 큰따음표("")구분하기 본문

JAVA

CSV파일 큰따음표("")구분하기

고코딩 2021. 6. 17. 11:34

JAVA CSV 파일 ""안의 , 무시하기

링크

참고

일하던중 CSV 읽는 형식을 짜야하는 순간이 왔다. 개발환경이 JDK1.6 이여서 openCSV라이브러리가 작동하지 않는다 ㅜㅜ

단순히 한줄씩 읽어 split(",")으로 잘라주고 싶었지만 예외의 상황이 발생했다.

우리가 알고있던 csv파일 형식은

a,b,c,d,f
value1,value2,value3,value4,value5
value11,value22,value33,value44,value55

형식일 것이다. 하지만 만약에 값이 문자열이라면? 그 문자열 안에 ,가 들어가 있는게 정상이라면? split(",")으로는 문제가 발생할 것이다.

a,b,c,d,f
value1,"Value2 have , char value",value3,value4,value5
value11,value22,value33,value44,value55

""로 문자열을 감싸는 경우가 생긴다. 심지어 그 안에 , 가 들어가면 큰일이다.

정답은 문자열 정규화를 사용했다.

split(",")으로 나눴던 문자열을

split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)",-1);

을 사용하면 된다!!!

와 openCSV를 사용할 필요가 없겠는걸? 근데 이렇게 짤수 있으면 openCSV 안쓰는게 이득 아닌가?

나중에 정규식 제대로 각 잡고 공부해야 겠다는 생각이 들었다 ㅜㅜ