1

NSStringObjective C で部分文字列を別の部分文字列 に置き換えたい。

置換したい部分文字列を見つける方法を知っています:

        NSRange range = [string rangeOfString:substringIWantToReplace];
        NSString *substring = [string substringFromIndex:NSMaxRange(range)];

しかし、実際に取り外し/交換するとなると、少し混乱します。Replace substring with another substring C++の C++ メソッドに従いますか? または、C の部分文字列を置き換える方法の C メソッドですか? ? Objective-C: Substring and replaceに関連する質問がありますが、問題の文字列は URL であるため、回答を使用できないと思います。

4

2 に答える 2

6

あなたの答えはここにあると思います [response stringByReplacingOccurrencesOfString:@"aaa" withString:@"bbb"];

URL のパーセント表記について懸念があり、適切に置換されることを確認したい場合は、まず文字列をデコードし、置換してからエンコードします。

// decode
NSString *path = [[@"path+with+spaces"
    stringByReplacingOccurrencesOfString:@"+" withString:@" "]
    stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// replace
path = [path stringByReplacingOccurrencesOfString:@"aaa" withString:@"bbb"]
// encode
path = CFURLCreateStringByAddingPercentEscapes(
                                               NULL,
                                               (CFStringRef)path,
                                               NULL,
                                               (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                                               kCFStringEncodingUTF8 );
于 2013-01-04T01:59:18.420 に答える
3

これは、部分文字列を確認し、NSString から部分文字列を置換/削除する方法です。

if([titleName rangeOfString:@"""].location != NSNotFound) {
     titleName = [titleName stringByReplacingOccurrencesOfString:@""" withString:@"\""];
}
于 2013-01-04T02:03:35.660 に答える