从NSString获得最大值是NSArray

时间:2013-06-27 22:36:28

标签: ios nsstring nsarray

我有一个NSArray,例如,它有以下表示文件的字符串。

"abc1.xml"
"abc2.xml"
"cde1.xml"
"cde2.xml"
"cde3.xml"
"def6.xml"
"def7.xml"

想象一下这些文件是{prefix}{number}.xml

是否有一种简单的方法可以找到以前缀{number}开头的文件的最大"abc"

1 个答案:

答案 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;

    }
}