それらが厳密にセクションを区切る文字ではない場合t
、つまりパーツが常に8文字の長さである場合、それを行うのは非常に簡単です。
NSString *string = @"t00010000t00020000t00030000";
NSMutableArray *arr = [NSMutableArray array];
int i;
for (i = 0; i < string.length; i += 8) {
[arr addObject:[string substringWithRange:NSMakeRange(i, 8)]];
}
ここarr
には8文字の部分文字列が含まれます。
編集:それでは、多次元ソリューションのさらに別のソリューションも提供しましょう。もちろん、@ KevinHの文字を使用したソリューションは非常に洗練されていますが、NSStringが必要で、別のメソッドを実装してもかまわない場合は、次のようなものを追加するのはかなり簡単です。
@implementation NSString (EightCarAdditions)
- (NSString *)charAsStringInSection:(NSInteger)section index:(NSInteger)index
{
return [self substringWithRange:NSMakeRange(section * 8 + index, 1)];
}
- (unichar)charInSection:(NSInteger)section index:(NSInteger)index
{
return [self characterAtIndex:section * 8 + index];
}
@end
(aではなくaをcharacterAtIndex
返すことに注意してください。1バイト幅を超えるUTF(8、16、32)のものに備えてください。)次に、NSString自体でこれらのメソッドを呼び出すことができるため、非常に便利です。unichar
char
unichar ch = [string charInSection:1 index:3];