Как дополнить целое число, предшествующее 0?

#iphone #objective-c #formatting #nsnumberformatter

#iPhone #objective-c #форматирование #nsnumberformatter

Вопрос:

У меня есть целое значение, например, 6 или 65. Если значение состоит из одной цифры, я хочу отобразить его как 06, а если оно равно 65, то как есть (только 65). Я искал в классе NSNumberFormatter iphone, но не понял, что именно нужно делать. Может ли кто-нибудь помочь мне в этом?

Заранее спасибо!!

Ответ №1:

Используйте спецификатор формата d, например

 NSLog(@"d", number);
  

Это выведет целое число длиной не менее 2 символов, а при необходимости выходные данные будут дополнены начальными нулями

Комментарии:

1. Я пытаюсь найти правильный аналогичный способ, когда у вас есть NSInteger / NSUInteger. Обычно я использую [NSNumber numberWithInteger:MyInteger] для целых чисел, затем печатаю с помощью @»%@», но тогда нет способа указать ширину.

2. @Jonny, с целым числом NS (U) вы можете использовать точно такой же спецификатор формата, поскольку на практике это тот же обычный int (или unsigned int). Здесь нет причин использовать NSNumber только для получения строкового представления

3. ОК. Я нашел где-то в документах Apple, что они рекомендуют приводить NSIntegers к long, а затем использовать %ld (если я правильно помню). Я использовал ld, чтобы получить ширину 2 и т.д. Так что да, я больше не использую NSNumber.

Ответ №2:

Для использования спецификаторов формата, как предложил Владимир, вы также можете использовать stringWithFormat удобный метод на NSString , чтобы сгенерировать строку из числового значения в желаемом формате.

Комментарии:

1. Спасибо ShaggyFrog за добавление ссылки на документацию.

Ответ №3:

Вот еще один вариант, хотя я думаю, что вариант Владимира, вероятно, самый чистый. 🙂

 NSLog(@"%@%d", number<10?@"0":@"", number);
  

Комментарии:

1. Я поклонник троичного оператора, но в данном случае нет. Здесь вы изобретаете велосипед заново.