142 votes

Diviser une NSString pour accéder à un morceau particulier

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 ?

375voto

JeremyP Points 46808
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])

36voto

Antwan van Houdt Points 5019

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.

9voto

Il fonctionne bien

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

8voto

khalid Points 61

Objective-c :

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

Swift :

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

6voto

Julio Gorgé Points 8061

Utilice [myString componentsSeparatedByString:@"/"]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X