如何遍历 NSString 并获取子字符串?

How to loop through an NSString and get a Substring?

我需要从 NSString 中获取子字符串。我需要在 - 之后获取子字符串,如果它后面跟着 E 直到下一个 -

例如,我有这个字符串 A-BB-CD-EF_10AW-ZWE_EG

我需要 EF_10AW。关于如何遍历 NSString 并动态获取子字符串的任何想法?

如果您的字符串包含多个以 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 将为您提供所有这些类型的字符串。希望这对你有帮助。

试试这个 splitArray = [yourString componentsSeparatedByString:@"-E"];

无需手动循环

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"