반응형
C++에서는 strtok 계열의 함수를 사용해서 토큰 단위로 문자열을 나눌 수 있습니다.
MFC에서는 AfxExtractSubString() 함수를 통해서 문자열을 토큰 단위로 나눌 수 있습니다.
아래 링크를 클릭하면 AfxExtractSubString() 함수에 대한 내용을 확인할 수 있습니다.
2015/06/22 - [Programming/Win32&MFC&COM] - CString 토큰(Token)으로 분리시키기(AfxExtractSubString)
C#에서는 String.Split()으로 쉽게 파싱할 수 있습니다.
C#에서 String.Split으로 문자열을 파싱하는 방법입니다.
static void Main(string[] args) { string text = "ABC\nDEF\tGHI JKL"; char[] sep = { '\n', '\t', ' ' }; string[] result = text.Split(sep); foreach (var item in result) { Console.WriteLine(item); } }
구분자로 사용할 문자를 배열로 만들어서 전체 string의 Split()을 호출할 때 전달하면 됩니다.
결과가 string의 배열로 나오기 때문에 foreach를 통해 하나씩 사용할 수 있습니다.
각각 '\n', '\t', ' '으로 분리하기 때문에 결과가 다음과 같이 출력됩니다.
구분자를 전달했을 때 공백 문자가 있는 경우에는 공백 문자가 전부 결과에 포함되서 나옵니다.
공백 문자는 구분자가 연달아 나올 때 만들어집니다.
아래와 같이 StringSplitOptions.RemoveEmptyEntries를 사용하면 해결됩니다.
static void Main(string[] args) { string text = "ABC\r\n\tDEF\r\n\tGHI\r\n\tJKL"; char[] sep = { '\n', '\t', ' ' }; string[] result = text.Split(sep, StringSplitOptions.RemoveEmptyEntries); foreach (var item in result) { Console.WriteLine(item); } }
만약 StringSplitOptions.RemoveEmptyEntries를 전달하지 않으면 결과가 다르게 출력됩니다.
String.Split()으로 쉽게 문자열 파싱이 가능합니다.
반응형
'Programming > CSharp' 카테고리의 다른 글
sealed 키워드를 사용한 클래스 상속 방지 (0) | 2014.12.27 |
---|---|
C#의 Property(속성) (0) | 2014.12.26 |
C# 물음표 2개(??) 연산자 (0) | 2014.12.25 |
C#의 키워드(Keywords) (0) | 2014.12.25 |