1

私が持っているとしましょう:

this - is an - example - with some - dashes

NSRange`rangeOfString:@"-"で"-"の最初のインスタンスを取得しますが、最後のインスタンスのみが必要な場合はどうなりますか?

lastIndexOfで同様に機能するものを探していJSます。ありがとう!

4

2 に答える 2

6

渡すことができるオプションの1つは、[NSString rangeOfString: options:]NSBackwardsSearchです(これにより、表示している文字列の最後の項目が表示されます)。

于 2012-02-02T16:31:12.740 に答える
2

rangeOfStringメソッドの別のバリアントがあります。

- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange

これにより、検索する範囲を指定できるため、ループ内で各範囲を検索し、検索範囲から除外して、一致するものがなくなるまで再試行できます。

あなたがやろうとしていることに応じて、あなたはこれを使ってもっと運がいいかもしれません:

NSArray *components = [string componentsSeparatedByString:@" - "];

これにより、文字列が@ "-"で区切られた各部分に分割され、配列で返されます。次に、[componentslastObject]を使用して最後の文字列を取得できます。

さらに別のオプションは、NSScannerを使用することです。これは、文字列をループして、トークンを取得するように設計されています。

于 2012-02-02T16:41:58.890 に答える