我有一个UITextField
用户将输入字符。这很简单,我怎样才能返回它的实际长度?当字符串包含A-Z 1-9个字符时,它按预期工作,但任何表情符或特殊字符都会重复计数。NSString长度 - 特殊字符
在它的最简单的形式,这只是有2个字符的分配对于一些特殊的字符,如表情符号:
NSLog(@"Field '%@' contains %i chars", myTextBox.text, [myTextBox.text length]);
我曾尝试过使用characterAtIndex
,substringFromIndex
等每个字符循环和毫无进展。
按照下面的答案,用确切的代码来计算字符数(希望这是正确的做法,但它的工作原理。):
NSString *sString = txtBox.text;
__block int length = 0;
[sString enumerateSubstringsInRange:NSMakeRange(0, [sString length])
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
length++;
}];
NSLog(@"Total: %u", length);
感谢非常非常努力。经过一些调整让它工作!已经更新并被接受为答案(如果我做错了,请告诉我!)。将该视频添加到我的观察列表中,有几件事情我真的需要打磨...再次感谢 – Ralphonzo
此方法不适用于某些表情符号字符,如标志。你的方法将返回2这些字符。 – Swordsfrog
救命恩,谢谢! – beebcon