次のようなビデオをアップロードしているときに、ユーザーに文字列を表示しています
20% uploaded
そのため、パーセンテージが 1 桁の場合、10 の位のスペースを空白文字で埋めたいと思います。
解決策として 1 桁の 01,02,03 を何度も表示する方法のように、その 0 の代わりに空白を表示したいと思います。
次のようなビデオをアップロードしているときに、ユーザーに文字列を表示しています
20% uploaded
そのため、パーセンテージが 1 桁の場合、10 の位のスペースを空白文字で埋めたいと思います。
解決策として 1 桁の 01,02,03 を何度も表示する方法のように、その 0 の代わりに空白を表示したいと思います。
これは、目的の出力を返すメソッドです
- (NSString *)uploadProgress:(NSUInteger)progress {
return [NSString stringWithFormat:@"%@%% uploaded", progress < 10 ?
[NSString stringWithFormat:@" %i", progress] :
[NSString stringWithFormat:@"%i", progress]];
}
電話:
NSLog(@"%@", [self uploadProgress:5]);
NSLog(@"%@", [self uploadProgress:50]);
出力:
2013-04-16 02:24:49.948 stackoverflow test001[11587:c07] 5% uploaded
2013-04-16 02:24:49.949 stackoverflow test001[11587:c07] 50% uploaded
私が考えることができる最良のアイデアは、値を確認することです。10 未満の場合は、空白文字を出力します。%.*s
これを使用して、printf に組み込むことができます。printf("%.*s%d%% uploaded", value < 10, " ", value);
EDIT:仕様によると、フィールド幅*
(または10進整数)がこれを行うようです:(printf("%*d%% uploaded", 2, value);
またはprintf("%02d%% uploaded", 2, value);
)