2013-02-28 116 views
0

我有這樣的字符串一個NSArray,刪除追加字符串

albumname/song42.mp3 
albumname/song43.mp3 etc . 

我想刪除字符串「專輯名稱」,並從上述數組」 MP3" ,並如下在tableview中顯示它,

song42 
song43 

然後在DidSelectRow,我想串 「http://www.domain.com/albumname/」 和」 .MP3" 添加到indepath.row元素。 例如: 如果用戶在tableview中選擇了song42,那麼它必須創建一個像這樣的字符串「http://www.domain.com/albumname/song42.mp3」 如何做到這一點?

回答

2

您可以使用lastPathComponentstringByDeletingPathExtension方法:

NSMutableArray *songs = [NSArray arrayWithCapacity:[sourceArray count]]; 
for (NSString *filename in sourceArray) { 
    [songs addObject:[[filename lastPathComponent] stringByDeletingPathExtension]]; 
} 
+0

你的代碼工作謝謝你。 – user2114872 2013-03-02 04:59:54

2

使用字符串方法componentsSeparatedByString首先使用/然後.分隔字符串,並丟棄不需要的內容。

NSString *str="albumname/song42.mp3"; 
NSArray *mainStrArray = [str componentsSeparatedByString:@"/"]; 


NSArray remainingStrArray=[[mainStrArray objectAtIndex:1]componentsSeparatedByString:@"."]; 

NSString *result=[remainingStrArray objectAtIndex:0]; //here you have song42 
7

- [NSString stringByDeletingPathExtension] < ---這去除

+ [NSString stringWithFormat:] < ---而這種重新

編輯我的錯,你首先需要做到這一點,你調用第一個方法之前:

NSString *lastPath = [string lastPathComponent]; //song43.mp3 
NSString *tableString = [lastPath stringByDeletingPathExtension]; //song43 
+0

這將不是就是工作 - 你需要將它與'lastPathComponent'結合。例如,如果你輸入'albumname/song42.mp3',如果你調用'stringByDeletingPathExtension',你會得到'albumname/song42'作爲輸出。 – lxt 2013-02-28 09:36:46

+0

-___-;你是對的,我會編輯 – borrrden 2013-02-28 09:37:51

+0

等一下。這是否會從數組中刪除字符串,擴展等?你的上面的代碼適用於單個字符串,不是嗎? – user2114872 2013-03-02 04:59:26

0

您可以使用,如:

NSString *str = @"album name/song43.mp3"; 

str=[[str componentsSeparatedByString:@"/"][1]componentsSeparatedByString:@".mp3"][0]; 

NSLog(@"->%@",str); //song43 
0
NSString *file = @"albumname/song42.mp3"; 
NSString *name = [[[[file componentsSeparatedByString:@"/"] objectAtIndex:1] componentsSeparatedByString:@"."] objectAtIndex:0];