在objective-c中的字符串中,如果我说[myStr length];
之类的字符串,则返回一个数字,即字节数,但我可以用什么来返回字符串中的字符数。
例如:
一个字母“a”的字符串返回长度为1
一个带有单个表情符号的字符串返回长度为2(有时甚至长度为4)
这是因为这是字符串中的字节数...我只需要字符数。
答案 0 :(得分:8)
我只是掀起了这个方法。将其添加到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);
这会产生:
Hello length = 5,chars = 5
表情符号长度= 11,字符= 9