我遇到了一个非常奇怪的行为:
NSLog(@"substring: '%@'\t- length: %d",substring,substring.length);
返回
substring: '' - length: 1
substring变量是一个NSString对象。
有人可以解释发生了什么......
编辑::已解决
艾米回答:
打印一个看不见的字符:
ZERO WIDTH JOINER Unicode:U + 200D,UTF-8:E2 80 8D
if ([substring isEqualToString:@"\u200d"]) {
NSLog(@"It is a ZERO WIDTH JOINER...");
}
感谢Phillip提示。
答案 0 :(得分:1)
看不见的空间怎么样?您应该检查您的子字符串是否为U + 200B符号,或者在这里查看http://www.cs.tut.fi/~jkorpela/chars/spaces.html
答案 1 :(得分:0)
可能是某种空白。如果要忽略空格,可以尝试:
string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
答案 2 :(得分:0)
它正在打印一个看不见的角色。:
ZERO WIDTH JOINER Unicode:U + 200D,UTF-8:E2 80 8D
答案 3 :(得分:0)
我不得不使用以下内容来消除一些额外的隐形。
[[NSCharacterSet alphanumericCharacterSet] invertedSet]