🍎
n文字ずつ区切って配列化するNSString拡張
例
文字列 | number | 結果 |
---|---|---|
あいうえお | 1 | @[@"あ",@"い",@"う",@"え",@"お"] |
あいうえお | 2 | @[@"あい",@"うえ",@"お"] |
あいうえお | 3 | @[@"あいう",@"えお"] |
あいうえお | 6 | @[@"あいうえお"] |
- 引数で指定した文字数ごとに配列に入れてNSArrayを返します
- 余った文字は最後に入ります(文字数は揃えません)
- 文字列と同数かより大きい数値を指定した場合、文字列をそのまま配列に入れます
NSString+Split.m
@implementation NSString (Split)
- (NSArray *)splitCharacterEvery:(NSUInteger)number
{
if ([self length] <= number) {
return @[self];
}
NSMutableArray *mArray = [NSMutableArray new];
NSMutableString *mStr = [NSMutableString stringWithString:self];
NSRange range = NSMakeRange(0, number);
while ([mStr length] > 0) {
if ([mStr length] < number) {
[mArray addObject:[NSString stringWithString:mStr]];
[mStr deleteCharactersInRange:NSMakeRange(0, [mStr length])];
}
else {
[mArray addObject:[mStr substringWithRange:range]];
[mStr deleteCharactersInRange:range];
}
}
return [NSArray arrayWithArray:mArray];
}
@end
Discussion