2010-08-21 44 views
2

試圖找出如何在隨機生成的數字前添加零,並在數字的動態長度內添加零。 例如,如果數字長度爲10個字符,我可以將該數字打印爲stringWithFormat:@「%。10d」,因爲數字可能短於最大長度,所以需要零填充最大長度的數字來適合字符串。動態創建一個NSString stringWithFormat:輸出

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

回答

14
NSLog (@"%@",[NSString stringWithFormat:@"%010d",i]); 

格式字符串分量的含義:

  • 第一0 - 表示的數量必須被填充爲特定的寬度用零
  • 10 - 輸出
  • 的所需的最小寬度

有關格式說明符的更多信息,可以查看printf specification。我有時也使用這個shorter one - 你可以在那裏找到你的例子。

您可以動態創建格式字符串,以及 - 你需要計算最大號碼長度提前(最大長度例子):

NSString* format = [NSString stringWithFormat:@"%%0%dd", maxLength]; 
NSString *s = [NSString stringWithFormat:format, 10]; 
NSLog(@"%@", s); 
+0

感謝您的格式說明信息。 但動態的長度仍然是一個問題。是否可以根據應填充的數字的最大長度來獲得所需的輸出最小寬度爲動態的? 示例結果 max_length 1000(4位數字) - 結果0042 max_length 100000(6位數字) - 結果003491 – linge 2010-08-22 13:36:24

+0

謝謝,解決了它。 – linge 2010-08-23 18:35:57

+0

+1爲鏈接到緊湊+詳細的printf規格。我努力通過谷歌找到他們,但很容易找到他們的答案 - 謝謝! – Adam 2013-08-20 14:37:58