我正在使用以下代码来获取字符串的标题。一切工作到我得到返回的行[s2 objectAtIndex:0]。问题在于它只是从字符串中删除“&”,而不是在“&”之前获取字符串。例如:从组件获取错误的字符串separatedByString方法
我试图从字符串“Sweat(David Guetta Remix) - Snoop Dogg & David Guetta”中获得标题。该方法将返回“Sweat David Guetta”而不是“Sweat”。如果你能看到问题请指出,因为它会有很多帮助!
- (NSString *)getTitleFromString:(NSString *)string {
NSString *newSongName = [NSString stringWithString:string];
NSArray *chunks = [newSongName componentsSeparatedByString:@"-"];
NSString *chunks2s = [chunks objectAtIndex:0];
NSArray *chunks2 = [chunks2s componentsSeparatedByString:@"("];
NSString *s = [chunks2 objectAtIndex:0];
NSArray *s2 = [s componentsSeparatedByString:@"&"];
return [s2 objectAtIndex:0];
}
编辑-----敲定代码:
- (NSString *)getTitleFromString:(NSString *)string {
NSArray * a = [string componentsSeparatedByString:@"-"];
NSString *b = [a objectAtIndex:0];
NSArray *c = [b componentsSeparatedByString:@"("];
NSString *d = [c objectAtIndex:0];
NSArray *e = [d componentsSeparatedByString:@"&"];
if ([e count] > 2) {
return [e objectAtIndex:0];
}
else {
return d;
}
return @"";
}
您是否调试过并确认名为“s”的变量中的字符串实际上是“Sweat&David Guetta”? – 2011-03-20 23:28:56
我无法确认。我只是NSLogged“s”,它调试:汗(换行) &(换行) 大卫Guetta – 2011-03-20 23:31:17
s2中的所有元素是什么? – 2011-03-20 23:37:12