String de formato, inteiro com zeros à esquerda

97

I Use este código:

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

e funciona bem, mas se pp pegasse o valor 10 por exemplo gostaria de ter img_010.jpg como resultado, e não img_0010.jpg ... como posso formatar a string ??

obrigado

ghiboz
fonte

Respostas:

249

Use a string de formato "img_%03d.jpg"para obter números decimais com três dígitos e zeros à esquerda.

quiabo
fonte
5

Para a posteridade: funciona com números decimais.

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

Embora essas informações sejam difíceis de encontrar, elas estão documentadas aqui no segundo parágrafo em Noções básicas de formatação. Procure o caractere%.

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

McUsr
fonte
1
Observe aqui que o "12" em @"%012.0F"se refere ao número total de dígitos, incluindo a vírgula decimal e qualquer coisa à direita.
bcattle
Para adicionar ao comentário do bcattle, isso também inclui qualquer coisa à direita . Para exibir -012,34, você teria que usar@"%07.2f"
n_b