-
[C#] Split 활용하기!C# 2023. 11. 29. 09:00728x90
안녕하세요.
항상 오랜만이라고 글을 시작하는거 같지만 오늘도 그렇습니다.
오랜만에 다시 글을 쓰네요~
요즘은 C#관련 책을 업무시작전에 읽고 있습니다.
너무 완성!이라는 목적보다는 조금은 유지보수, 사용성, 아름다운 코드를 추구해 보고자 노력하고 있습니다.
그렇기에 오늘은 간단하지만 꿀팁(?)이라고 할 수 있는 string의 Split 메서드를 활용해 보겠습니다.
목표
이번 글의 목표는 특정 문장에 대해서 단어만 추출! 하기입니다.
이렇게 써놓으면 뭔가 대단한 로직이 있을거같지만 제목을 보듯 그저 Split을 활용하는 내용입니다.
테스트 문장은 "Hello my name is wookku. I like Coding." 문장을 사용하도록 하겠습니다.
STEP1 : Split으로 단어 분리하기
첫 번째 단계는 문장별로 분류하려면 띄어쓰기(space)를 기준으로 split을 이용하겠습니다.
var test = "Hello my name is wookku. I like Coding."; var words= test.Split(' '); foreach (var item in words) { Console.WriteLine(item); }
분리는 됐으나... '.'기호가 여전히 있네요. 그럼 한단계 더 나아가 보겠습니다.
STEP2 : new[]{' '}를 활용한 Split하기
이번에는 스페이스와 마침표를 둘다 Split해 단어를 추출해 보겠습니다.(Replace를 사용하면 되지만 Split 실습용이니 이해 부탁드립니다~:D)
var test = "Hello my name is wookku. I like Coding."; var words= test.Split(new[] { ' ' ,'.'}); foreach (var item in words) { Console.WriteLine(item); }
이렇게 배열안에 분리에 사용할 두 가지 스페이스, 마침표를 넣겠습니다.
그럼 결과는~?
짠! 이제 마침표도 없습니다. 그러나 마침표로 인한 빈공란들이 발생합니다.
그렇다면 foreach문에서 공란들은 들어오지 않도록 처리해야될까요?
다음단계에서 알아보시죠~
STEP3 : StringSplitOptions.RemoveEmptyEntries 옵션 사용하기
네~ 이제 마지막 단계입니다.
StringSplitOptions.RemoveEmptyEntries 옵션을 통해 분리된 단어 배열에 공백을 제거해 보겠습니다.
var test = "Hello my name is wookku. I like Coding."; var words = test.Split(new[] { ' ' ,'.'}, StringSplitOptions.RemoveEmptyEntries); foreach (var item in words) { Console.WriteLine(item); }
기존의 Split에서 해당 옵션을 추가 한 후 다시 결과를 확인하면~
이렇게 공백을 담고있던 배열은 사라지는걸 확인 할 수 있습니다.
저는 지금까지 공백이 있으면 조건문으로 처리할 생각만 했지 해당 내용은 생각하지 못해 이렇게 기록으로 남겨놓습니다.
오늘은 이렇게 간단한 글을 남기며 마무리하겠습니다.
추워지는 날씨에 항상 감기 조심하시기 바랍니다!
감사합니다. 😀😀😀
@@@ 추가
사용하다보니 특이점이 발생해 이렇게 기록해 놓습니다.
.Split(',', StringSplitOptions.RemoveEmptyEntries)
이렇게 사용하면 '반환 값에 빈 문자열이 포함된 배열 요소가 포함되지 않았습니다.'
'System.StringSplitOptions에서 'char'(으)로 변환 할 수 없습니다.'
이런 에러가 발생할 수 있습니다.
그럴때는
.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
이렇게 배열로 감싸주시면 되겠습니다.
감사합니다. :D
'C#' 카테고리의 다른 글
[C#] System.InvalidCastException: 'Unable to cast COM object of type 'System.__ComObject' .. 관련 에러 (0) 2023.05.25 [C#] Process실행시 Unhandled exception. System.ComponentModel.Win32Exception 관련 오류 (2) 2023.01.05 [C#] Obslete란? (0) 2022.09.20 [C#] System.Text.Json을 이용한 Json 데이터 탐색 (1) 2022.08.26 [C#] string.Format사용시 입력 문자열의 형식이 잘못되었습니다. 관련 오류 (0) 2022.08.11