Динамически создайте строку NSString stringWithFormat: output - PullRequest
2 голосов
/ 22 августа 2010

пытается выяснить, как добавить нули перед случайно сгенерированным числом с динамической длиной числа. Например, если длина составляет 10 символов, я могу напечатать число в виде stringWithFormat: @ "%. 10d", i

Поскольку число может иногда быть короче максимальной длины, ему нужны нули, чтобы заполнить максимальную длину числа для соответствия строке.

- (void)method:(int)length{
int i = rand() % length;
NSLog (@"%@",[NSString stringWithFormat:@"%.'length'd",i]);
}

1 Ответ

15 голосов
/ 22 августа 2010
NSLog (@"%@",[NSString stringWithFormat:@"%010d",i]); 

Значение компонентов форматной строки:

  • 1-й 0 - означает, что число должно быть дополнено до определенной ширины нулями
  • 10 - необходимая минимальная ширина вывода

Для получения дополнительной информации о спецификаторах формата вы можете проверить эту спецификацию printf . Я иногда также использую этот более короткий - вы можете найти свой пример там.

Вы также можете динамически создавать строку формата - вам нужно заранее рассчитать максимальную длину номера (например, maxLength):

NSString* format = [NSString stringWithFormat:@"%%0%dd", maxLength];
NSString *s = [NSString stringWithFormat:format, 10];
NSLog(@"%@", s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...