次のような文字列があります:@"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])
次のいずれか2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
日付文字列が適切にフォーマットされておらず、日(またはその点で月)が08ではなく8として表示されることがあるため、最初の1つが2つのソリューションの中で最悪の場合があることに注意してください。
後者は、返されたものの長さを実際に確認できるように、別の配列に配置する必要があります。そのため、ソースが破損または無効な日付文字列の場合に例外がスローされることはありません。
その作業はうまく
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
Objective-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];
}
Swift 3.0バージョン
let arr = yourString.components(separatedBy: "/")
let month = arr[0]