0

我正在尝试在创建单词时制作字母的“加权”列表。我在 NSArray 中有大量单词。例如,我正在尝试获取一个新的 NSArray,其中仅填充了基于输入的前两个字母的所有单词的第三个字母。

到目前为止,我已经...

NSArray *filteredArray;
if (currentWordSize == 0) {
    filteredArray = wordDictionary
}
else {
    NSPredicate *filter = [NSPredicate predicateWithFormat:@"SELF beginswith[cd] %@", filterString];
    filteredArray = [wordDictionary filteredArrayUsingPredicate:filter];
}

这很适合将整个单词放入过滤后的数组中,但这并不是我所需要的。任何人都可以告诉我一种只用随机的第一个、第二个或第三个字母填充的方法filteredArray吗?NSStringwordDictionary

编辑:澄清了我的问题。

4

1 回答 1

2

NSPredicate这不是你想要使用的。 NSPredicate只是根据一个或多个标准评估对象并返回是/否结果,因此它不能用于执行实际操作正在测试的项目的事情。

要获取数组中每个字符串的第三个字母并将结果放入新数组中,如下所示:

NSArray* wordDictionary;
NSMutableArray* filteredArray = [[NSMutableArray alloc] init];

for (NSString* aString in wordDictionary)
{
    if ([aString length] > 2)
        [filteredArray addObject:[aString substringWithRange:NSMakeRange(2, 1)]];
    else
        [filteredArray addObject:@""]; //there is no third letter
}
于 2010-07-21T16:13:48.623 回答