NSScanner
http://nshipster.com/nsscanner/
문자열은 모든 곳에 있고 컴퓨팅의 여러 부분을 담당하고 있다. 이메일, 에세이, 시, 소설, 이 글도 그렇고 심지어 블로그의 코드도 모두 문자열로 되어 있다. 문자열을 쪼개고 특정한 부분을 추출해 내는 능력은 프로그래밍에서 강력한 무기가 될 수 있다. 코코아는 문자열을 쪼개고 합치는 다양한 방법을 제공하는데, 그 중 몇 가지 유명한 예를 들자면,
string.componentsSeparatedByCharactersInSet
/string.componentsSeparatedByString
: 문자열을 특정 토큰을 기준으로 잘라 배열로 쪼갠다.NSRegularExpression
: 정규식을 적용한다. 하지만 정규식은 복잡한 문자열에 대해서는 꽤나 번거롭기도 하거니와 많은 주의를 기울일 필요가 있다.NSDataScanner
: 문자열에서 주소, 날짜와 시간, URL 등을 추출해 내지만 정해진 포맷에 대해서만 사용할 수 있다는 제약이 있다.NSScanner
: 고도로 커스터마징이 가능한 문자열 스캔 클래스.
NSScanner
는 문자열의 래퍼처럼 사용하고, 내부의 문자열을 탐색해서 효과적으로 부분문자열 집합이나 숫자값등을 추출해 낼 수 있다. 이 동작을 제어하는 몇 가지 프로퍼티를 살펴보자면,
caseInsensitive:Bool
: 문자열을 탐색할 때 대소문자 구분을 무시할 것인지 여부charactersToBeSkipped:NSCharacterSet
: 탐색시 무시할 글자들을 정의한다.scanLocation:Int
: 스캐너의 현재 위치이다. 이 값을 조정하면 빨리감기/되감기 등을 할 수 있다.locale:NSLocale
: 문자열을 숫자값으로 바꿔낼 때 사용할 로케일 값이다.