3 votes

ios substr de la fin

J'ai essayé un substringFromIndex:-4 mais j'ai obtenu une erreur. Comment couper et garder juste l'extrémité d'une chaîne ? Ou plutôt, substr de la fin ?

eg.

12/12/2012 -> 2012

9voto

Nick Lockwood Points 23277

Vous devez le calculer vous-même, j'en ai peur. Ça va marcher :

NSString *theWholeString = @"12/12/2012";
NSString *substring = [theWholeString substringFromIndex:[theWholeString length] - 4];

Dans le cas ci-dessus, vous pourriez aussi le faire avec un split, comme ceci :

NSString *theWholeString = @"12/12/2012";
NSArray *components = [theWholeString componentsSeparatedByString:@"/"];
NSString *substring = [components objectAtIndex:2]; // the third item in the array

C'est probablement plus facile si vous voulez extraire chaque partie de la date, l'une après l'autre.

Pour être complet, si vous devez analyser des dates, la meilleure façon de le faire est d'utiliser NSDateFormatter, comme ceci :

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

//first get the date object
[formatter setDateFormat:@"dd/MM/yyyy"]; // make sure you get dd and MM the right way round if you're American
NSDate *date = [formatter dateFromString:@"12/12/2012"];

//now output the part you wanted
[formatter setDateFormat:@"yyyy"];
NSString *justTheYear = [formatter stringFromDate:date];

C'est trop compliqué si vous ne voulez que l'année, mais si vous commencez à essayer de découper des chaînes de date/heure plus complexes, c'est beaucoup plus flexible.

8voto

Irene Points 6076

Essayez :

NSString *dateString = @"12/12/2012";
NSLog(@"%@", [dateString substringFromIndex:[dateString length]-4]);

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