Objective-Cの文字列で、バイト数である数値を返すような[myStr length];
ことを言うと、文字列内の文字数を返すために何を使用できますか。
例:
文字「a」を
含む文字列は長さ 1 を返し、単一の絵文字を含む文字列は長さ 2 (場合によっては長さ 4) を返します。
これは、文字列のバイト数であるためです...文字数だけが必要です。
Objective-Cの文字列で、バイト数である数値を返すような[myStr length];
ことを言うと、文字列内の文字数を返すために何を使用できますか。
例:
文字「a」を
含む文字列は長さ 1 を返し、単一の絵文字を含む文字列は長さ 2 (場合によっては長さ 4) を返します。
これは、文字列のバイト数であるためです...文字数だけが必要です。
私はこの方法を思いつきました。カテゴリに追加しNSString
ます。
- (NSUInteger)characterCount {
NSUInteger cnt = 0;
NSUInteger index = 0;
while (index < self.length) {
NSRange range = [self rangeOfComposedCharacterSequenceAtIndex:index];
cnt++;
index += range.length;
}
return cnt;
}
NSString *a = @"Hello";
NSLog(@"%@ length = %u, chars = %u", a, a.length, a.characterCount);
NSString *b = @" Emoji ";
NSLog(@"%@ length = %u, chars = %u", b, b.length, b.characterCount);
これにより、次の結果が得られます。
こんにちは 長さ = 5、文字 = 5
絵文字の長さ = 11、文字 = 9