webentwicklung-frage-antwort-db.com.de

Teilen Sie einen NSString, um auf ein bestimmtes Teil zuzugreifen

Ich habe eine Zeichenfolge wie folgt: @"10/04/2011" und ich möchte nur die "10" in einer anderen Zeichenfolge speichern. Wie kann ich das machen?

142
CrazyDev
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];

pdate 03.07.2008:

Nachdem die Frage ein Swift Tag erhalten hat, sollte ich die Swift) Methode hinzufügen. Es ist ziemlich einfach:

let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]

Beachten Sie jedoch, dass es ein Array von Substring gibt. Wenn Sie diese zurück in normale Zeichenfolgen konvertieren müssen, verwenden Sie map

let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]

oder

let firstBit = String(substrings[0])
375
JeremyP

Eine dieser 2:

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

Beachten Sie jedoch, dass eine Datumszeichenfolge manchmal nicht richtig formatiert ist und ein Tag (oder ein Monat) als 8 und nicht als 08 angezeigt wird, sodass die erste der beiden Lösungen die schlechteste sein kann.

Letzteres sollte in ein separates Array gestellt werden, damit Sie tatsächlich die Länge der zurückgegebenen Daten überprüfen können, damit Sie keine Ausnahmen im Falle einer beschädigten oder ungültigen Datumszeichenfolge von einer beliebigen Quelle erhalten.

36

Es funktioniert gut

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

Ziel c:

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

Schnell:

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

Verwenden [myString componentsSeparatedByString:@"/"]

6
Julio Gorgé

Ich habe die Nette Lösung von JeremyP oben in eine allgemeinere wiederverwendbare Funktion unten formatiert:

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

Swift 3.0 Version

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