programing

Objective-C에서의 문자열 치환

padding 2023. 4. 23. 10:07
반응형

Objective-C에서의 문자열 치환

문자를 바꾸는 방법은 Objective-C의 문자열입니까?

다음과 같은 방법을 사용할 수 있습니다.

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement

...서브스트링이 교체된 새 문자열을 얻으려면 (기타 내용은 설명서를 참조하십시오)

사용 예

NSString *str = @"This is a string";

str = [str stringByReplacingOccurrencesOfString:@"string"
                                     withString:@"duck"];

NSString오브젝트는 불변(변경 불가)하지만 문자열 내의 문자를 치환하기 위한 몇 가지 메서드를 제공하는 가변 서브클래스가 있습니다.그게 최선책일 거야

문자열을 여러 개 치환하는 경우:

NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo

또한 stringByReplacingCharactersInRange:withString으로 스트링을 치환할 수도 있습니다.

for (int i = 0; i < card.length - 4; i++) {

    if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) {

        NSRange range = NSMakeRange(i, 1);
        card = [card stringByReplacingCharactersInRange:range withString:@"*"];

    }

} //out: **** **** **** 1234

이 문제는 iOS의 이전 버전에서 발생합니다. 최신 버전에서는 오른쪽에서 왼쪽으로 올바르게 작동합니다.제가 한 일은 다음과 같습니다.

먼저 iOS 버전을 확인합니다.

if (![self compareCurVersionTo:4 minor:3 point:0])

대상:

// set RTL on the start on each line (except the first)  
myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n"
                                                           withString:@"\u202B\n"];
NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];

언급URL : https://stackoverflow.com/questions/668228/string-replacement-in-objective-c

반응형