0

次のようなビデオをアップロードしているときに、ユーザーに文字列を表示しています

20% uploaded

そのため、パーセンテージが 1 桁の場合、10 の位のスペースを空白文字で埋めたいと思います。

解決策として 1 桁の 01,02,03 を何度も表示する方法のように、その 0 の代わりに空白を表示したいと思います。

4

4 に答える 4

1

これは、目的の出力を返すメソッドです

- (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
于 2013-04-16T06:26:09.700 に答える
1

私が考えることができる最良のアイデアは、値を確認することです。10 未満の場合は、空白文字を出力します。%.*sこれを使用して、printf に組み込むことができます。printf("%.*s%d%% uploaded", value < 10, " ", value);

EDIT:仕様によると、フィールド幅*(または10進整数)がこれを行うようです:(printf("%*d%% uploaded", 2, value);またはprintf("%02d%% uploaded", 2, value);

于 2013-04-16T06:17:52.997 に答える