2012-05-30 2 views
1

:길이가 1 인 NSString이 비어 있습니까? 내가 정말 이상한 행동을 발견 한

NSLog(@"substring: '%@'\t- length: %d",substring,substring.length); 

반환

substring: '‍' - length: 1 

하위 문자열 변수는있는 NSString 객체입니다.

사람이 무슨 일이 일어나고 있는지 설명해 주시겠습니까 ...

편집 : 에이미 대답으로

해결했다

그것은 눈에 보이지 않는 문자 :

를 인쇄하는 것

0 너비 조이너 유니 코드 : U + 200D, UTF-8 : E2 80 8D

팁 덕분에 필립에게 감사드립니다.

+0

'하위 문자열'에는 무엇이 있습니까? 너비가 0 인 문자 일 수 있습니까? (예 : http://www.fileformat.info/info/unicode/char/200b/index.htm) – mattjgalloway

+2

NSLog (@ "문자 값 : % d", [substring characterAtIndex : 0])를 사용하면 어떻게됩니까? '? –

+1

실제로 배열의 길이가 0이고'' ''이 아니라면'(nil)'을 반환합니다. –

답변

0

: U + 200D를 UTF-8 : E2 80 8D

0

공백이있을 수 있습니다. 당신이 공백을 무시하려는 경우, 당신은 시도 할 수 있습니다 :

그것은 눈에 보이지 않는 문자 :

ZERO WIDTH JOINER 유니 코드를 인쇄하는 것

string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
+0

제안 해 주셔서 감사합니다.하지만 질문을 게시하기 전에이 작업을 시도했지만 도움이되지 않았습니다. – Reggian

0

나는 여분의 보이지 않는 부분을 없애기 위해 다음을 사용하여 다듬어야했다.

[[NSCharacterSet alphanumericCharacterSet] invertedSet] 
관련 문제