如何将NSString拆分为多个NSStrings

时间:2014-04-06 02:14:08

标签: objective-c nsstring uikit

我试图将NSString分成多个NSStringNSString中每个字符的一个新字符串。有没有比手动更简单的方法呢?可以自动执行此操作的方法或API吗?

例如,转动此字符串:

_line1 = [NSString stringWithFormat:@"start"];

成:

_string1 = [NSString stringWithFormat:@"s"];
_string2 = [NSString stringWithFormat:@"t"];
_string3 = [NSString stringWithFormat:@"a"];
_string4 = [NSString stringWithFormat:@"r"];
_string5 = [NSString stringWithFormat:@"t"];

2 个答案:

答案 0 :(得分:2)

那里的文件非常好。有很多方法可以做到这一点。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html

一种方法是创建一个包含每个字符的NSString数组。

NSString * line1 = @"start";
NSMutableArray * characters = [NSMutableArray array];

for(int i = 0; i < line1.length; i++) {
    NSString * character = [line1.substringWithRange:NSMakeRange(i, 1)];
    [characters addObject:character];
}

// Then loop over characters array ... 

答案 1 :(得分:1)

首先,你为什么要使用_line1?您永远不应该通过指针直接访问属性。请改用self.line1。我假设你的班级定义中有@property NSString *line1;。如果没有,您需要根据需要调整我发布的代码。

其次,没有办法内置。但手动操作非常简单:

NSMutableArray *chars = [NSMutableArray array];
NSUinteger i = 0;
for (i = 0; i < self.line1.length; i++) {
  [chars addObject:[self.line1 substringWithRange:NSMakeRange(i, 1)]];
}