iOS
NSCharacterSet vs. NSRegularExpressionSearch vs. NSScanner
문자열에서 특정 문자를 제외한 나머지 문자를 제거해야하는 상황이라면?!
조건
- 문자열 : [[UIDevice currentDevice] name]
- 사용 가능한 문자 : a-z, A-Z, 0-9, -, _
방법
- NSCharacterSet
- NSRegularExpressionSearch
- NSScanner
장점, 단점
- NSCharacterSet
- 장점 : 특수한 상황에서는 가장 간단하게 구현할 수 있다.
- 단점 : 문자열에 2byte 문자가 포함되어 있을 경우, 크래쉬가 발생한다.
- NSRegularExpressionSearch
- 장점 : NSScanner 보다 다양한 조건을 처리할 수 있다.
- 단점 : 직접 조건에 맞는 정규식을 작성해야 한다.
- NSScanner
- 장점 : NSRegularExpressionSearch 보다 간편하게 사용할 수 있다.
- 단점 : NSRegularExpressionSearch 보다 사용 범위가 제한적이다.
결론
- 상황에 맞게 사용하자. ( 무책임; )