NSArray仅计算数字

时间:2011-05-10 12:50:05

标签: cocoa nsarray

我有一个数组,里面只有数字字符串和字母,即:

"10.1",
"15.7",
"9.3",
"RED",
"7.7",
"BLUE",
"9.0"

[array count]返回数组中所有字符串的数字(在本例7中)。

如何获取仅包含数字的字符串的数量?

谢谢,

最高

2 个答案:

答案 0 :(得分:1)

使用块,这会为数组中包含十进制数字的所有字符串创建一组数组索引。

[[items indexesOfObjectsPassingTest: ^(id obj, NSUInteger idx, BOOL *stop) {
     return (BOOL) [obj rangeOfCharacterFromSet: [NSCharacterSet decimalDigitCharacterSet]].length; 
 }] count]

答案 1 :(得分:1)

在您的示例中,所有元素都是字符串,但我认为您在开始时忘记了 @

基本上你需要遍历数组的内容,看看它们是否与你想要的匹配:

NSUInteger count = 0;
for (id object in array) {
    if ([object .... ])
        count++;
}

您可能会看一下新的基于块的api:

- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate

然后查看返回值的计数。对于大型数组,我宁愿自己迭代,如果你不需要除了计数之外的索引集。