我有一个NSArray
,例如,它有以下表示文件的字符串。
"abc1.xml"
"abc2.xml"
"cde1.xml"
"cde2.xml"
"cde3.xml"
"def6.xml"
"def7.xml"
想象一下这些文件是{prefix}{number}.xml
是否有一种简单的方法可以找到以前缀{number}
开头的文件的最大"abc"
答案 0 :(得分:2)
NSString *prefix = @"abc"; // adjust the prefix as needed
NSUInteger max = 0;
for (NSString *filename in myArray) {
// if the prefix matches...
if (filename.length >= prefix.length && [[filename substringToIndex:prefix.length] isEqualToString:prefix]) {
// take away every character that's not a number
NSString *numberAsString = [[filename componentsSeparatedByCharactersInSet:
[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]
componentsJoinedByString:@""];
// turn the NSString into an int
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
int n = [[f numberFromString:numberAsString] integerValue];
// update the maximum value if necessary
if (n > max) max = n;
}
}