NSString의 처음 세 문자를 얻는 방법?


104

NSString의 처음 세 문자를 어떻게 반환 할 수 있습니까?

답변:


263
 mystr=[mystr substringToIndex:3];

문자열에 3 채널 이상이 있는지 확인하십시오. oe 앱이 충돌합니다.

다음은 NSsting 작업을 확인하는 몇 가지 다른 링크입니다.

Link1

Link2

애플 링크


21
참고 : 길이를 확인하지 않는 경우 가능한 오류 "범위 밖으로 범위 또는 인덱스는"그것을 가지고 세 이상의 자 확인합니다
라이언 Bavetta

나는 아주 새롭고 내 질문에 답하기 위해이 질문을 검색했지만이 대답은 처음 3 개의 문자를 제외하지 않습니까? 동일한 구문을 사용하여 설정 한 문자 수를 제거합니다. 내가 틀렸을 수도 있지만 적어도 물어봐야한다고 생각했습니다.

@RyanBavetta이 작업을 수행하는 문자열이 예를 들어 코드가 이전에 작성한 날짜 문자열이므로 얼마나 많은 문자가 있는지 정확히 알 수 있습니다. 그렇다면 확실히 얼마나 긴지 확인하기 위해 if 문으로 귀찮게 할 필요가 없습니다.
Supertecnoboff

1
@GameLoading 초보자에게 충돌하지 않도록 답변에 몇 가지 코드를 추가했습니다.
괜찮으 시겠어요

충돌을 피하려면 mystr = [mystr substringToIndex : MIN (mystr.length, 3)]을 사용하십시오. :-)
LaborEtArs

62

먼저 문자열에 3 자 이상이 포함되어 있는지 확인해야합니다.

NSString *fullString = /* obtain from somewhere */;
NSString *prefix = nil;

if ([fullString length] >= 3)
    prefix = [fullString substringToIndex:3];
else
    prefix = fullString;

substringToIndex: 제공 한 색인이 문자열의 끝을 벗어난 경우 예외가 발생합니다.


5
또는 @ try / @ catch 블록으로 래핑합니다. 그럼에도 불구하고 이것은 다른 것보다 더 나은 대답입니다.
Alan Zeino 2011 년

2

올바른 방법은 다음과 같습니다.

text = [text substringToIndex:NSMaxRange([text rangeOfComposedCharacterSequenceAtIndex:2])];

NSString의 substringToIndex는 코드 단위로 인덱싱되고 이모지는 두 개의 코드 단위를 사용합니다.

색인을 직접 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.