書式文字列、先行ゼロ付き整数


97

私はこのコードを使用します:

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

正常に動作しますが、たとえばppの値が10の場合、結果としてimg_0010.jpgではなくimg_010.jpgが必要です...文字列をフォーマットするにはどうすればよいですか?

ありがとう

回答:


249

書式文字列"img_%03d.jpg"を使用して、3桁の数字と先行ゼロを持つ10進数を取得します。


5

後世のために:これは10進数で動作します。

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

この情報を見つけるのは難しいですが、実際には、フォーマットの基本の2番目の段落に記載されています。%文字を探します。

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.