39 votes

Comment puis-je marquer un entier à gauche avec des zéros ?

J'ai la variable suivante :

NSNumber *consumption = [dict objectForKey:@"con"];

Ce qui renvoie 42. Comment puis-je marquer ce nombre à 10 chiffres sur la gauche, menant avec des zéros. La sortie doit ressembler à,

0000000042

ou si c'était 420,

0000000420

100voto

taskinoor Points 24438
NSString *paddedStr = [NSString stringWithFormat:@"%010d", 42];

MODIFIER : Il s'agit du formatage de style C. %nd signifie que la largeur est d'au moins n. Donc, si l'entier est long de 2 chiffres, alors vous aurez la longueur 3 chaîne (quand %3d est utilisé). Par défaut, les espaces vides laissés sont remplis par espace. % 0nd (0 entre % et n) signifie que 0 est utilisé pour le remplissage au lieu de l'espace. Ici, n est la longueur totale. Si le nombre entier est inférieur n chiffres alors le remplissage gauche est utilisé.

17voto

Deepak Danduprolu Points 33605

La méthode Objective-C,

NSNumberFormatter * numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setPaddingPosition:NSNumberFormatterPadBeforePrefix];
[numberFormatter setPaddingCharacter:@"0"];
[numberFormatter setMinimumIntegerDigits:10];

NSNumber * number = [NSNumber numberWithInt:42];

NSString * theString = [numberFormatter stringFromNumber:number];

NSLog(@"%@", theString);

La méthode C est cependant plus rapide.

8voto

puzzle Points 3952

Vous ne pouvez pas dans le NSNumber lui-même. Si vous créez une chaîne à partir du nombre ou en utilisant NSLog(), utilisez simplement le format approprié, par exemple

NSLog(@"%010d", [consumption intValue]);

1voto

dklt Points 1108

avec variable num_digits

NSString* format =[NSString stringWithFormat:@"%%0%zdzd", num_digits];
NSString *theString = [NSString stringWithFormat:format, 42];

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