🍎

n文字ずつ区切って配列化するNSString拡張

2020/09/19に公開

文字列 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

ログインするとコメントできます