将字符串分成字符

时间:2014-02-04 00:52:15

标签: objective-c nsstring

我有一个NSString * titleName,它根据if语句改变。所以字符串中的长度(字符数)会发生变化。我想将titleName分成一个MutableArray,它由单独的字符组成。然后我想将这些单独的字符串用作不同UILabel中的文本。我不确定如何解决这个问题。

通过一些研究,我试图像这样创建NSMutable数组

NSMutableArray *letterArray = substringWithRange:((i = 0);i<[titleName2 length];i++));

但是这给了我一个错误使用未声明的标识符'substringWithRange。

有人可以帮助我。

我决定使用componentsSeparatedByString而只是在每个字母之间用a创建我的各种字符串。感谢任何人的想法。

3 个答案:

答案 0 :(得分:0)

您粘贴的代码不是有效的Objective-C。 要保持相同的算法,您应该编写类似的内容:

NSMutableArray *letterArray = [NSMutableArray array];
NSUInteger length = [titleName2 length];
for (NSUInteger i = 0; i < length; ++i) {
    [letterArray addObject:[titleName2 substringWithRange:NSMakeRange(i, 1)]];
}

答案 1 :(得分:0)

持有构成字符串的unichar字符的C数组可能要“更便宜”。创建它也会更快:

NSString *input = @"How now brown cow?";
unichar chars[[input length]];
for (NSInteger i = 0; i < [input length]; i++)
    chars[i] = [input characterAtIndex:i];

或者,您可以使用malloc()创建C阵列:

NSString *input = @"How now brown cow?";
unichar *chars = (unichar *)malloc([input length]);
for (NSInteger i = 0; i < [input length]; i++)
    chars[i] = [input characterAtIndex:i];

然后使用free(),以后,错误地释放内存:

free(chars);

更便宜的是,根本不会拆分字符串......

答案 2 :(得分:0)

请尝试以下代码

NSMutableArray *letterArray = [NSMutableArray array];

for (int i = 0;i<[titleName2 length];i++)
{
    [letterArray addObject: [titleName2 substringWithRange:NSMakeRange(i,1)]];
}

DLog(@"%@", letterArray);

获取字符串

字符的其他选项
NSMutableArray *letterArray = [NSMutableArray array];

for (int i=0; i < [titleName2 length]; i++)
{
    [letterArray addObject:[NSString stringWithFormat:@"%c", [titleName2 characterAtIndex:i]]];
}

DLog(@"characters - %@", letterArray);