J'ai une chaîne de caractères comme celle-ci : @"10/04/2011"
et je veux enregistrer uniquement le "10" dans une autre chaîne. Comment puis-je le faire ?
Réponses
Trop de publicités?NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
Mise à jour 7/3/2018 :
Maintenant que la question a acquis une étiquette Swift, je dois ajouter la façon Swift de procéder. C'est à peu près aussi simple :
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Cependant, notez que cela vous donne un tableau de Substring
. Si vous avez besoin de les reconvertir en chaînes de caractères ordinaires, utilisez map
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
ou
let firstBit = String(substrings[0])
L'un ou l'autre de ces 2 :
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
Cependant, gardez à l'esprit que, parfois, une chaîne de date n'est pas formatée correctement et qu'un jour (ou un mois, d'ailleurs) est affiché comme 8, plutôt que 08.
Cette dernière doit être placée dans un tableau séparé afin que vous puissiez réellement vérifier la longueur de la chose retournée, de sorte que vous n'obteniez pas d'exceptions dans le cas d'une chaîne de date corrompue ou invalide, quelle que soit la source dont vous disposez.