2012-02-02 5 views
3

쉼표를 기반으로 CSV 파일을 분할 관리했습니다. 거기에 ','가 있었고 더미 문자열을 기반으로 분할하는 더미 문자열을 배치하여이 작업을 수행했습니다.Java - 배열로 CSV 파일 분할

그러나, CSV 파일과 같은 것들을 포함 : 새 줄을이 따라서

something, something, something 
something, something, something 

를, 각 행의 마지막과 처음 값은 자신의 캐릭터에 병합 얻을. 이 문제를 어떻게 해결할 수 있습니까? 나는 이 그것을 기반으로 분할하지만 아무런 성공도하지 못하는 곳에 더미 문자열 배치를 시도했습니다.

도와주세요!

+0

왜 직접 쉼표를 사용하여 분할하지 않았다? 어쨌든 더 나은 도움을 얻으려면 http://sscce.org/를 게시하십시오. – jalopaba

답변

5

나는 바퀴를 다시 발명하지 않는 것이 좋습니다. 도움으로 당신이 언급 한 더미 문자열 당으로 라인을

   String[] a=scanner.next().split(" "); 
4

더미 문자열이 필요한 이유가 표시되지 않습니다. 쉼표로 분리하지 않으시겠습니까?

BufferedReader in = new BufferedReader(new FileReader("file.csv")); 
String line; 
while ((line = in.readLine()) != null) { 
    String[] fields = line.split(","); 
} 
+0

이것은 줄을 기준으로 나눌 때 도움이되지 않습니다. 그것이 문제였습니다. – mino

+2

당신은 각 줄을 읽고 각각 하나씩 나누어야합니다. 그렇다면 병합의 문제는 없을 것입니다. – dogbane

-1

을 : CSV 파일, 예를 들어 처리를 위해 이미 사용 가능한 라이브러리 중 하나로 이동 기존 라이브러리의 나는 오픈 소스 라이브러리 uniVocity-parsers을 추천하고 싶습니다. 단순한 API, 중요한 성능 및 유연성을 제공합니다.

그냥 배열을 메모리에 CSV 데이터를 읽는 코드 몇 줄을 참조하십시오

private static void parseCSV() throws FileNotFoundException { 
    CsvParser parser = new CsvParser(new CsvParserSettings()); 
    List<String[]> parsedData = parser.parseAll(new FileReader("/examples/example.csv")); 

    for (String[] row : parsedData) { 
     StringBuilder strBuilder = new StringBuilder(); 
     for (String col : row) { 
      strBuilder.append(col).append("\t"); 
     } 
     System.out.println(strBuilder); 
    } 
} 
1

을 분할합니다 따라와, 그것은 쉽게 처리 할 수 ​​있습니다를 사용 OpenCSV