Форматування рядка, ціле число з провідними нулями


97

Я використовую цей код:

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

і працює добре, але якщо pp взяв значення 10, наприклад, я б хотів, щоб результат img_010.jpg, а не img_0010.jpg ... як я можу відформатувати рядок ??

Дякую

Відповіді:


249

Використовуйте рядок формату "img_%03d.jpg"для отримання десяткових чисел з трьома цифрами та провідними нулями.


5

Для нащадків: це працює з десятковими числами.

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

Хоча цю інформацію важко знайти, вона насправді задокументована тут, у другому параграфі, в розділі Основи форматування. Шукайте символу%.

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


1
Тут зауважимо, що "12" @"%012.0F"посилається на кількість загальних цифр, включаючи десятковий знак і що-небудь праворуч.
bcattle

Щоб додати коментар bcattle, це також включає що-небудь праворуч . Щоб відобразити -012,34, вам доведеться скористатися@"%07.2f"
n_b
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.