我使用以下代码来获取字符串的标题。一切都在我得到返回的行[s2 objectAtIndex:0]。问题是它只是删除了“&”从字符串而不是在“&”前面获取字符串。例如:
我试图从字符串“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 @"";
}
答案 0 :(得分:1)
给定初始字符串"Sweat (David Guetta Remix) - Snoop Dogg & David Guetta"
:
chunks
将["Sweat (David Guetta Remix) ", " Snoop Dogg & David Guetta"]
(字符串拆分为“ - ”)
chunks2s
将是"Sweat (David Guetta Remix) "
(chunks
的第一个元素)
chunks2
将为"["Sweat ", "David Guetta Remix) "]"
(该字符串在开头处分开)
s
因此将"Sweat "
(chunks2
的第一个元素)
s2
与s
的内容相同,因此该方法应该返回正确的内容。如果不是,那么你的一个假设是错误的。