문자열의 공백 문자 (반각 공백) 자르기

코토의 발단



우선, 어떠한 변철도 없는 입력 폼에 대해 소개합니다.
다음 화면에서는 식물 이름을 등록하려고합니다.


하지만 손이 미끄러져 문자열 앞에 몇 줄 정도 공백이 ...
게다가 불행하게도, 기세 너무 등록 버튼도 눌러 버렸습니다.


그러면

결과는 이렇게 되었습니다.


본래라면 이렇게 하고 싶다고 생각하는 것이 보통인가...

실수로 문자열에 공백이 포함되어 있어도
이런 기분 나쁘네요.

앞두기가 길어서 죄송합니다.
조속히, 이번 테마에 대해 소개하겠습니다.

특정 문자열을 제거하고 싶습니다.



문자열의 조작을 할 때, 문자열끼리의 결합 등은 자주 교과서나 사이트에서도 설명이 이루어지고 있습니다만, 그 밖에도 알아 두면 편리한 것이 있습니다. 이번에 제가 소개하고 싶은 것은 문자열 중에서 특정 문자를 제거하고 싶은 경우 등에 사용할 수있는 메소드에 관한 것입니다.

NSCharacterSet 클래스



이것은 유니코드를 준수하는 문자 집합을 제공하는 클래스입니다. NSString 객체나 NSScanner 객체로 문자를 검색할 때는 매우 든든한 아군이 됩니다. 자세한 것은 여기 를 참고로 하면 좋을 것입니다.

공백을 지정하려면 NSCharacterSet(iOS Developer Library에서)에서 다음 클래스 메소트를 지정합니다.
+ whitespaceCharacterSet

또한 공백뿐만 아니라 줄 바꿈을 포함하고 싶다면,
+ whitespaceAndNewlineCharacterSet

를 사용하면 개행도 지정할 수 있습니다.

stringByTrimmingCharactersInSet 메서드



이것은 NSString 클래스에 속하는 인스턴스 메소드로, 제1 인수의 캐릭터 라인으로부터 제2 인수의 캐릭터 라인 세트를 제거한다고 하는 작업을 실시해 줍니다. ( Apple API Reference )

- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;


사용 예



다음과 같은 메소드를 정의하면 어떨까요?
필요에 따라 빈 제거 필터로 사용할 수 있을까 생각합니다.

- (NSString *)trimSpaceWithText:(NSString *)text {
    NSCharacterSet *space = [NSCharacterSet whitespaceCharacterSet];
    return [text stringByTrimmingCharactersInSet:space];
}


요약



내 앱에서는 문자 수 확인과 함께 사용하고 있습니다.
라벨등의 편지 병합 캐릭터 라인 + 정형 문자 등, 공백 채를 표시시키는데 적합하지 않은 부분에서는, 공백의 캐릭터 라인은 어떻게든 금지할 필요가 있기 때문입니다.

(예 1) 아사가오 기록

(예 2) 아사가오의 모습

문자 없음, 공백(Space)만의 경우, 등록 처리에 제한을 걸고 있습니다.

이상입니다.

다른 방법, 더 좋은 방법 등이 있다면,
꼭 가르쳐 주시면 다행입니다.

좋은 웹페이지 즐겨찾기