0

我有一个包含 NSstring 值的数组,现在我想将它们过滤掉,并根据它们的第一个字母创建子数组,例如,如果我在数组中有数组值 america 和 brazil,我希望创建两个数组,一个基于美国在它的第一个字母'a'和第二个带有巴西即第一个字母是'b'。现在我正在为此使用(NSarray)filteredArrayUsingPredicate:(NSPredicate *)predicate

-(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用于检查目的,我也无法正确地制作正则表达式。过滤是另一个数组,我每次都会使用它来添加从这个函数返回的数组,以添加到我的主数组中

4

1 回答 1

1

这应该有效:

NSString *letter = [NSString stringWithFormat:@"%C", (unichar)(value + i)];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self BEGINSWITH[cd] %@", letter];
于 2013-09-20T11:21:16.673 回答