NSString пусто с длиной = 1?
Я столкнулся с действительно странным поведением:
NSLog(@"substring: '%@'\t- length: %d",substring,substring.length);
возвращается
substring: '' - length: 1
Переменная substring является объектом NSString.
Может кто-нибудь объяснить, пожалуйста, что происходит...
РЕДАКТИРОВАТЬ:: решено
Как Эми ответила:
Это печать невидимого персонажа.:
ZERO WIDTH JOINER Юникод: U+200D, UTF-8: E2 80 8D
if ([substring isEqualToString:@"\u200d"]) {
NSLog(@"It is a ZERO WIDTH JOINER...");
}
И спасибо Филиппу за подсказку.
4 ответа
Это печать невидимого персонажа.
JO ZERO WIDTH JOINER Юникод: U+200D, UTF-8: E2 80 8D
Как насчет невидимого пространства? Вы должны проверить свою подстроку для символа U+200B, или посмотрите здесь http://www.cs.tut.fi/~jkorpela/chars/spaces.html
Может быть какой-то пробел. Если вы хотите игнорировать пробелы, вы можете попробовать:
string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Мне пришлось обрезать, используя следующее, чтобы избавиться от некоторых дополнительных невидимых.
[[NSCharacterSet alphanumericCharacterSet] invertedSet]