programing tip

Objective-C-문자열에서 마지막 문자 제거

itbloger 2020. 6. 10. 22:38
반응형

Objective-C-문자열에서 마지막 문자 제거


iOS 용 Objective-C에서 버튼 동작을 사용하여 문자열의 마지막 문자를 어떻게 제거합니까?


컨트롤러 클래스에서 Interface Builder에서 버튼을 연결할 액션 메소드를 만듭니다. 이 방법 내에서 다음과 같이 문자열을자를 수 있습니다.


if ([string length] > 0) {
    string = [string substringToIndex:[string length] - 1];
} else {
    //no characters to delete... attempting to do so will result in a crash
}






한 줄의 코드 로이 작업을 수행하는 멋진 방법을 원한다면 다음과 같이 작성할 수 있습니다.

string = [string substringToIndex:string.length-(string.length>0)];

* 공상적인 한 줄짜리 코드 스 니펫 설명 :

삭제할 문자가있는 경우 (즉, 문자열 길이가 0보다 큰 경우)
     (string.length>0)리턴 1하여 코드를 리턴합니다.
          string = [string substringToIndex:string.length-1];

삭제할 문자가없는 경우 (예 : 문자열은 0보다 큰)이 아니다
     (string.length>0)반환 0: 따라서 코드 반환을
          string = [string substringToIndex:string.length-0];
     방지 충돌합니다.


그것이 NSMutableString (동적으로 변경하기 때문에 권장 할 것) 인 경우 다음을 사용할 수 있습니다.

[myString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];

여기에 제공된 솔루션은 실제로 멀티 바이트 유니 코드 문자 ( "구성된 문자")를 고려하지 않으므로 유효하지 않은 유니 코드 문자열이 발생할 수 있습니다.

실제로의 선언을 substringToIndex포함하는 iOS 헤더 파일 에는 다음 주석 포함됩니다.

힌트 : rangeOfComposedCharacterSequencesForRange와 함께 사용하여 구성된 문자가 깨지지 않도록하십시오.

마지막 문자를 올바르게 삭제 하는 방법을rangeOfComposedCharacterSequenceAtIndex: 참조하십시오 .


문서는 당신의 친구이며, 단축 문자열을 반환하는 문자열을 단축 할 수 NSString있는 호출 substringWithRange지원합니다 . 인스턴스 NSString는 변경할 수 없습니다. 가있는 경우 문자열을 수정할 수 NSMutableString있는 메소드 deleteCharactersInRange가 있습니다.

...
NSRange r;
r.location = 0;
r.size = [mutable length]-1;
NSString* shorted = [stringValue substringWithRange:r];
...

참고 URL : https://stackoverflow.com/questions/1082178/objective-c-remove-last-character-from-string

반응형