답변:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
2018 년 7 월 3 일 업데이트 :
질문이 Swift 태그를 얻었 으므로이 작업을 수행하는 Swift 방법을 추가해야합니다. 그것은 매우 간단합니다.
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
비록 그것은 당신에게 배열을 제공합니다 Substring
. 이것을 다시 일반 문자열로 변환 해야하는 경우map
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
또는
let firstBit = String(substrings[0])
[foo firstObject]
빈 배열도 올바르게 처리하므로 일반적으로 사용하는 것이 좋습니다.
이 두 가지 중 하나 :
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
때로는 날짜 문자열의 형식이 잘못되어 있고 하루 (또는 그 문제에 대한 한 달)가 08이 아니라 8로 표시되므로 첫 번째 문자열은 두 가지 솔루션 중 최악 일 수 있습니다.
후자는 별도의 배열에 넣어야 반환되는 물건의 길이를 실제로 확인할 수 있으므로 어떤 소스에서든 날짜 문자열이 손상되었거나 유효하지 않은 경우 예외가 발생하지 않습니다.
위에서 JeremyP가 제공 하는 멋진 솔루션을 아래의 일반적인 재사용 가능한 함수로 포맷했습니다 .
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}