我需要从NSString获取一个子串。我需要在-
之后获取子字符串,如果后跟E
,则直到下一个-
例如,我有这个字符串A-BB-CD- EF_10AW -ZWE_EG
我需要获得EF_10AW。关于如何迭代NSString并动态获取子串的任何想法?
答案 0 :(得分:1)
如果您的字符串包含多个以E开头并以 - 结尾的字符串,那么您必须拥有一个可以找到所有字符串的解决方案。有关此类解决方案,请参阅以下代码:
NSString *str = @"A-BB-CD-EF_10AW-ZWE_EG";
NSArray *compArray = [str componentsSeparatedByString:@"-"];
NSMutableArray *arrayStartWithE = [NSMutableArray array];
for (int i = 0; i < [compArray count]; i++) {
if ([[compArray objectAtIndex:i] hasPrefix:@"E"]) {
[arrayStartWithE addObject:[compArray objectAtIndex:i]];
}
}
这里arraystartWithE将为您提供所有这些类型的字符串。希望这对你有帮助。
答案 1 :(得分:0)
试试这个 splitArray = [yourString componentsSeparatedByString:@“ - E”];
无需手动循环。
答案 2 :(得分:0)
NSString *haystack = @"A-BB-CD-EF_10AW-ZWE_EG";
NSString *haystackPrefix = @"A-BB-CD-";
NSString *haystackSuffix = @"-ZWE_EG";
NSRange needleRange = NSMakeRange(haystackPrefix.length,
haystack.length - haystackPrefix.length - haystackSuffix.length);
NSString *needle = [haystack substringWithRange:needleRange];
NSLog(@"needle: %@", needle); // -> "hello World"