0

我有一个带有这样字符串的nsarray,

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

我想从上面的数组中删除字符串“专辑名称”和“.mp3”,并将其显示在表格视图中,如下所示,

song42
song43

然后在 DidSelectRow 中,我想将字符串“ http://www.domain.com/albumname/ ”和“.mp3”添加到 indepath.row 元素。例如:如果用户在tableview中选择song42,那么它必须创建一个像这样的字符串“ http://www.domain.com/albumname/song42.mp3 ”怎么做?

4

5 回答 5

7

- [NSString stringByDeletingPathExtension] <--- 这要删除

+ [NSString stringWithFormat:] <--- 这要重新创建

编辑我的错误,您首先需要在调用第一种方法之前执行此操作:

NSString *lastPath = [string lastPathComponent]; //song43.mp3
NSString *tableString = [lastPath stringByDeletingPathExtension]; //song43
于 2013-02-28T09:33:27.783 回答
2

使用 String 方法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
于 2013-02-28T09:30:22.760 回答
2

您可以使用lastPathComponentstringByDeletingPathExtension方法:

NSMutableArray *songs = [NSArray arrayWithCapacity:[sourceArray count]];
for (NSString *filename in sourceArray) {
    [songs addObject:[[filename lastPathComponent] stringByDeletingPathExtension]];
}
于 2013-02-28T09:39:06.337 回答
0

您可以使用,如:

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

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

NSLog(@"->%@",str); //song43
于 2013-02-28T09:36:55.953 回答
0
NSString *file = @"albumname/song42.mp3";
NSString *name = [[[[file componentsSeparatedByString:@"/"] objectAtIndex:1] componentsSeparatedByString:@"."] objectAtIndex:0];
于 2013-02-28T09:38:49.387 回答