我有一个带有NSstring值的数组,现在我想过滤它们,并根据它们的第一个字母创建子数组,例如,如果我有一个数组值美国和巴西在一个数组中我想要创建一个数组一个美国的第一个字母是'a',第二个是巴西,即第一个字母是'b'。 现在我正在使用(NSarray)filteredArrayUsingPredicate :( NSPredicate *)谓词。
-(void)addArrayToMutableArray:(NSArray *) tableDataArrayObj
{
portArrayMutableObj = [[NSMutableArray array]alloc];
unichar value =65;
for(int i=0;i<26;i++)
{
predicate=[NSPredicate predicateWithFormat:@"%c", value+i ];
//not able to make predicate exp and not able to make it search my string the way i want.
NSLog(@"decimal char %@", predicate);
filtered = [tableDataArrayObj filteredArrayUsingPredicate:predicate];
//half implemeted, wanna add this filtered array to main array also.
}
现在我很震惊于创建这个谓词,并且不能得到我的 tableDataArrayObj.substring indexat:0 用于检查目的,我也无法正确制作正则表达式。 filter是另一个数组,我将每次使用这个func返回的数组添加到我的主数组中
答案 0 :(得分:1)
这应该有效:
NSString *letter = [NSString stringWithFormat:@"%C", (unichar)(value + i)];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self BEGINSWITH[cd] %@", letter];