2

私は次のものを持っていますNSString

productID = @"com.sortitapps.themes.pink.book";

最後に、「本」は何でもかまいません....「音楽」、「映画」、「ゲーム」など。

ピンクという単語の後の3番目のピリオドを見つけて、最後の「本」の単語を別の単語に置き換える必要があります。NSRangeでこれを行うにはどうすればよいですか?基本的に私はこれが必要です:

partialID = @"com.sortitapps.themes.pink.";
4

3 に答える 3

7

ドットの逆方向検索を試み、その結果を使用して目的の範囲を取得できます。

NSString *str = @"com.sortitapps.themes.pink.book";
NSUInteger dot = [str rangeOfString:@"." options:NSBackwardsSearch].location;

NSString *newStr =
   [str stringByReplacingCharactersInRange:NSMakeRange(dot+1, [str length]-dot-1)
                                withString:@"something_else"];
于 2012-03-15T19:38:33.653 に答える
2

これは文字を見つけるための一般的な解決策ではありませんが、特定のケースでは、次のようにしてコードを「ごまかして」保存することができます。

[productID stringByDeletingPathExtension];

基本的に、私は名前をファイル名として扱い、この目的のためにNSStringメソッドを使用して最後の(そして最後の)拡張子を削除しています。

于 2012-03-15T19:36:25.197 に答える
2

を使用-[NSString componentsSeparatedByString:@"."]してコンポーネントに分割し、目的の値で新しい配列を作成してから、を使用[NSArray componentsJoinedByString:@"."]して変更した配列を再び文字列に結合できます。

于 2012-03-15T19:36:33.653 に答える