-1

完全な文字列から特定の文字列を取得する方法。

例: 以下のような完全な文字列があります。

"http://serverurl.com/mediadata/Album.wav";

上記の文字列から「Album.wav」を取得する必要があります。名前は URL 文字列によって異なります。入手方法は?

ありがとう。

4

3 に答える 3

3

パス コンポーネントを使用できます。

NSString fileName = [URLstring lastPathComponent];
于 2012-04-15T12:56:14.823 に答える
0

rangeOfString で始まる NSString クラスのメソッドを使用することもできます。

- (NSRange)rangeOfString:(NSString *)aString;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale;
于 2012-04-15T12:54:29.797 に答える
0

おそらく NSScanner を使用して、4 番目のスラッシュまでスキャンする必要があります。スキャン後に残ったものが、必要な文字列になります。

編集済み

ただし、リチャードが言ったように、URLが変更されない場合は、NSStringがファイルパスを解析するため、単純なパスコンポーネントが機能します。例を示します。

NSArray *urlStrings = [NSArray arrayWithObjects:@"http://serverurl.com/mediadata/Album.wav",
                                                @"http://serverurl.com/mediadata/NewAlbum.wav",
                                                @"http://serverurl.com/mediadata/OtherAlbum.mp3", nil];

for (NSString *url in urlStrings) {
    NSLog(@"%@",[url lastPathComponent]);
}

出力

2012-04-15 09:01:15.878 NSScanner[6448:f803] Album.wav
2012-04-15 09:01:15.880 NSScanner[6448:f803] NewAlbum.wav
2012-04-15 09:01:15.881 NSScanner[6448:f803] OtherAlbum.mp3
于 2012-04-15T12:52:01.967 に答える