使用字符串方法将单词分隔成字符

时间:2010-01-15 02:24:47

标签: iphone

尝试将用户在文本字段中写入的内容拆分为一个数组,其中包含所输入内容中的字符。

这是我到目前为止所拥有的

-(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]);

}

我做错了什么?

1 个答案:

答案 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]来获取它的数组表示。