我有一个数组,里面只有数字字符串和字母,即:
"10.1", "15.7", "9.3", "RED", "7.7", "BLUE", "9.0"
[array count]返回数组中所有字符串的数字(在本例7中)。
如何获取仅包含数字的字符串的数量?
谢谢,
最高
答案 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
然后查看返回值的计数。对于大型数组,我宁愿自己迭代,如果你不需要除了计数之外的索引集。