将字符串拆分为部分

Igo*_*yuk 1 objective-c nsstring

我想分成NSString带有固定长度部分的数组.我怎样才能做到这一点?

我搜索过它,但我只找到componentSeparatedByString方法,但仅此而已.它也可以手动完成,但有更快的方法吗?

Mon*_*olo 6

取决于"更快"的意思 - 如果它是你所指的处理器性能,我猜它很难被击败substringWithRange:,但对于像这样的问题的强大,简单编码,正则表达式实际上可以派上用场.

这是一个可用于将字符串分成10个字符块的字节,允许最后一个字符串少于10个字符:

NSString *pattern = @".{1,10}";
Run Code Online (Sandbox Code Playgroud)

不幸的是,正则表达式机器的Cocoa实现不那么优雅,但很容易使用:

NSString *string = @"I want to split NSString into array with fixed-length parts. How can i do this?";

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern: pattern options: 0 error: &error];

NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];

NSMutableArray *result = [NSMutableArray array];                            
for (NSTextCheckingResult *match in matches) {
    [result addObject: [string substringWithRange: match.range]];
}
Run Code Online (Sandbox Code Playgroud)