2012-06-27 8 views
-2

OpenCSV, antlr, jsapar 등의 자바 파서를 볼 수는 있지만 사용자 지정 줄 분리 자 및 열 분리자를 모두 지정할 수있는 기능이 표시되지 않습니까? 사용하기 편한 라이브러리가 있습니다. Scanner 또는 Stringtokenizer를 사용하여 하나를 쓰고 싶지 않습니다.Java simple line parser

예 : A | B || C | D || E |

F

이 같은 것을이 위의 문자열을 중단 할 {{A가 B}, {C, D}, {E, F}}

+6

7 개의 질문이 있으며 해당 질문에 대한 대답을 하나만 수락했습니다. 수용률을 높이기 위해 일부 대답을 수락하십시오 (허용 할 수 없음). – Th0rndike

답변

1

당신은 그것을 달성하는 것은 매우 간단합니다, 스스로를 구문 분석 할 수 있습니다. 나는이 코드를 실제적으로 테스트하지 않았고 직접 시도 할 수도있다.

line_delimiter = "||"; 
column_delimiter = "|"; 

String rows[]; 
rows = str.split(line_delimiter); 
for (int i = 0; i < rows.length; i++) { 
    String columns[]; 
    columns = rows[i].split(column_delimiter); 
    for (int j = 0; j < columns.length; j++) { 
     // Do something to your data here; 
    } 
} 
+0

감사합니다. 위의 예제보다 더 복잡 할 수 있습니다. 구획 문자를 모두 가져 와서 저에게 일하는 일반 구문 분석기가 있는지 알고 싶었습니다. 어쨌든 고마워! – Satish

0

사실, JSaPar 당신은 두 라인 경계에 대한 문자 순서뿐만 아니라 셀 구분 기호를 할 수 있습니다. 스키마 내에서 사용할 분리 문자를 지정하며 임의의 문자 수입니다.

둘 모두에서 동일한 문자를 사용하면 직면하게되는 문제는 파서가 줄 바꿈을했는지 또는 빈 셀인지 알 수 없다는 것입니다.