[objective-c] NSString을 분할하여 하나의 특정 부분에 액세스

다음 @"10/04/2011"과 같은 문자열이 있습니다. 다른 문자열에 “10”만 저장하고 싶습니다. 어떻게해야합니까?



답변

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])


답변

이 두 가지 중 하나 :

NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];

때로는 날짜 문자열의 형식이 잘못되어 있고 하루 (또는 그 문제에 대한 한 달)가 08이 아니라 8로 표시되므로 첫 번째 문자열은 두 가지 솔루션 중 최악 일 수 있습니다.

후자는 별도의 배열에 넣어야 반환되는 물건의 길이를 실제로 확인할 수 있으므로 어떤 소스에서든 날짜 문자열이 손상되었거나 유효하지 않은 경우 예외가 발생하지 않습니다.


답변

잘 작동합니다

NSString *dateString = @"10/10/2010";//Date 
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];


답변

목표 -c :

     NSString *day = [@"10/04/2011" componentsSeparatedByString:@"/"][0];

빠른:

     var day: String = "10/04/2011".componentsSeparatedByString("/")[0]


답변

사용하다 [myString componentsSeparatedByString:@"/"]


답변

위에서 JeremyP가 제공 하는 멋진 솔루션을 아래의 일반적인 재사용 가능한 함수로 포맷했습니다 .

///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
    return [stringToBeExploded componentsSeparatedByString: delimiter];
}


답변

스위프트 3.0 버전

let arr = yourString.components(separatedBy: "/")
let month = arr[0]