Ben böyle bir dize var: @"10/04/2011"
ve sadece "10" başka bir dize kaydetmek istiyorum. Bunu nasıl yapabilirim?
Ben böyle bir dize var: @"10/04/2011"
ve sadece "10" başka bir dize kaydetmek istiyorum. Bunu nasıl yapabilirim?
Yanıtlar:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
7/3/2018 Güncellemesi:
Şimdi soru bir Swift etiketi edindiğine göre, bunu Swift'in yolunu eklemeliyim. Oldukça basit:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Rağmen size bir dizi verir unutmayın Substring
. Bunları normal dizelere dönüştürmeniz gerekiyorsa,map
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
veya
let firstBit = String(substrings[0])
[foo firstObject]
Boş diziyi de düzgün işleyeceği için kullanmak genel olarak daha iyi olabilir.
Bunlardan herhangi biri 2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
Bununla birlikte, bazen bir tarih dizesinin düzgün biçimlendirilmediğini ve bir günün (veya bu konu için bir ayın) 08 yerine 8 olarak gösterildiğini unutmayın, bu nedenle birincisi 2 çözümden en kötüsü olabilir.
İkincisi ayrı bir diziye konulmalıdır, böylece döndürülen şeyin uzunluğunu kontrol edebilirsiniz, böylece sahip olduğunuz herhangi bir kaynaktan bozuk veya geçersiz bir tarih dizesi durumunda atılan herhangi bir istisna alamazsınız.
İyi çalışıyor
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
kullanım [myString componentsSeparatedByString:@"/"]
Yukarıda JeremyP tarafından sağlanan güzel çözümü aşağıdaki daha genel bir yeniden kullanılabilir fonksiyona biçimlendirdim :
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}