public static String[] csvSplit(String str)
{
ArrayList<String> resultList = new ArrayList<>();
char charArr[] = str.toCharArray();
boolean isQuotes = false;
int start=0;
for(int i=0; i<charArr.length; i++)
{
if(charArr[i]=='\"')
{
if((i>0)&&(charArr[i-1]=='\\')) continue;
else if(isQuotes && (((i+1)==charArr.length)||(charArr[i+1]==',')))
{
resultList.add(str.substring(start+1, i));
isQuotes = false;
start = (++i)+1;
}
else isQuotes = true;
}
else if(charArr[i]==',')
{
if(!isQuotes)
{
if(start>=i) resultList.add("");
else resultList.add(str.substring(start, i));
start = i+1;
}
}
}
if(charArr.length>start) resultList.add(str.substring(start, charArr.length));
return resultList.toArray(new String[resultList.size()]);
}
단, 따옴표가 연속해서 어러개 나오는 경우에 일부가 빠짐
'개발 및 연구 정보' 카테고리의 다른 글
파이선 패키지 설치 오류 관련 (0) | 2020.10.23 |
---|---|
파이선 스터디 사이트 (0) | 2020.03.16 |
java에서 map의 key를 value로 소팅하기 (0) | 2020.03.09 |
안드로이드 화면 PC로 전송 (0) | 2016.10.19 |
java 날짜 관련 정보 (예. 주/월 등) 구하기 예제 (0) | 2016.09.23 |