2011-08-16 5 views
7

"고정 너비"데이터 파일 세트를 구문 분석하려고하는데 데이터 파일 당 너비가 다르기 때문에 따옴표로 묶습니다. 그러나 필드는 X 줄의 공백으로 구분되므로 줄을 읽은 다음 line.Split ('')을 사용합니다.String.Split() - 연속 된 구분 기호를 하나로 처리합니다.

그러나 연속 된 공백은 사용할 수 없습니다! !

답변

17

몇 가지 옵션이 있습니다.

첫 번째는 StringSplitOptions 매개 변수를 받아들이는 string.Split() 오버로드를 사용하고 StringSplitOptions.RemoveEmptyEntries에 전달하는 것입니다 : 당신이 행에 여러 공간이있는 경우,

string[] columns = lineOfText.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries); 

그 방법을, 생성 된 빈 항목이 삭제됩니다 .

두 번째 옵션은 정규 표현식을 사용하여 구문 분석을하는 것입니다. 이것은 아마도 귀하의 경우에는 필요하지 않지만 형식이 복잡해 지거나 시간이 지남에 따라 조금씩 바뀔 것으로 예상되는 경우 유용 할 수 있습니다.

+0

+1,하지만 Regex는 행을 공백으로 구분 된 값으로 분할하기 위해 약간 외진 것 같습니다. 옵션 1은 잘되어야합니다. – StriplingWarrior

+0

@Stripling 충분; 명명 된 캡처 그룹 및 유연한 제한 조건으로 인해 형식 변경을 쉽게 조정할 수 있기 때문에 바람직하다고 생각합니다. 하지만 네,이 단순한 경우 옵션 1이 더 좋을 것 같습니다. – dlev

관련 문제