Formatieren Sie eine Zeichenfolge, eine Ganzzahl mit führenden Nullen

97

Ich benutze diesen Code:

NSString* strName = [NSString stringWithFormat:@"img_00%d.jpg", pp];

und funktioniert gut, aber wenn pp zum Beispiel den Wert 10 angenommen hat, hätte ich gerne img_010.jpg als Ergebnis und nicht img_0010.jpg ... wie kann ich den String formatieren?

Vielen Dank

ghiboz
quelle

Antworten:

249

Verwenden Sie die Formatzeichenfolge "img_%03d.jpg", um Dezimalzahlen mit drei Ziffern und führenden Nullen zu erhalten.

Gumbo
quelle
5

Für die Nachwelt: Dies funktioniert mit Dezimalzahlen.

NSString *nmbrStr = @"0033620340000" ;
NSDecimalNumber *theNum = [[NSDecimalNumber decimalNumberWithString:nmbrStr]decimalNumberByAdding: [NSDecimalNumber one]] ;     
NSString *fmtStr = [NSString stringWithFormat:@"%012.0F",[theNum doubleValue]] ;

Obwohl diese Informationen schwer zu finden sind, werden sie hier im zweiten Absatz unter Formatierungsgrundlagen dokumentiert. Suchen Sie nach dem% -Zeichen.

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html

McUsr
quelle
1
Beachten Sie hier, dass sich die "12" in @"%012.0F"auf die Anzahl der Gesamtziffern bezieht, also einschließlich des Dezimalpunkts und aller rechts stehenden Stellen.
Vieh
Um den Kommentar von bcattle zu ergänzen, enthält dies auch alles auf der rechten Seite . Um -012.34 anzuzeigen, müssten Sie@"%07.2f"
n_b