2010-01-15 78 views
0

尝试将用户在文本字段中写入的内容分割为一个包含所键入内容中的字符的数组。使用字符串方法将单词分隔为字符

这里是我迄今为止

-(IBAction) generateFlashNow:(id)sender{ 

[textField resignFirstResponder]; 
NSString *string1 = textField.text; 
NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@"" withString:@","]; 
NSArray *arrayOfLetters = [string2 componentsSeparatedByString:@","]; 

NSLog(@"Log Array :%@", arrayOfLetters); 

//NSArray *imageArray = [[NSArray alloc] init]; 

NSLog(@"Log First Letter of array: %@",[arrayOfLetters objectAtIndex:0]); 

} 

我在做什么错?

回答

0

stringByReplacingOccurrencesOfString当你传递一个空字符串“”时没有做任何事情,所以string2string1的完全相同副本,因此没有逗号和分割操作失败。

有很多方法可以做到这一点。我能想到两个:

转换为字符数组:

NSString *string = @"Hello"; 
const char *characters = [string UTF8String]; 
for(int i=0; i<sizeof(characters); i++) { 
    NSLog(@"%c", characters[i]); 
} 

或者,如果你只是想处理的对象,遍历每个方法和手工创建数组:

NSString *string = @"Hello"; 
NSMutableArray *array = [[NSMutableArray alloc] init]; 
for(int i = 0; i < [string length]; i++) { 
    NSString *myChar = [NSString stringWithFormat:@"%c", [string characterAtIndex:i]]; 
    [array addObject:myChar]; 
} 

您可以将上述逻辑添加到方法中,如toArray作为NSString本身的类别,因此如果这是您的应用程序的常见情况,则所有字符串都会获得此功能。有关类别的更多信息,请查看此article。您只需拨打[someString toArray]即可获得数组表示。