programing

NSString을 분할하여 하나의 특정 조각에 액세스합니다.

starjava 2023. 5. 7. 10:44
반응형

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

그러나 경우에 따라 날짜 문자열의 형식이 제대로 지정되지 않고 1일(또는 해당 날짜의 경우 한 달)이 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]

언급URL : https://stackoverflow.com/questions/5806852/split-an-nsstring-to-access-one-particular-piece

반응형