2012-09-24 185 views
0

我生成使用0-99之間的隨機數這樣的:Java的隨機打印

int num2= (int)(Math.random() * ((99) + 1)); 

當數低於10,我希望它有一個0num2 打印所以,如果數爲9這將是09 。

我怎樣才能打印出來?

+2

爲什麼不直接使用* 100?爲什麼99 + 1? –

+0

http://stackoverflow.com/a/275716/779982 – naugler

回答

5

可以使用format()方法:

System.out.format("%02d%n", num2); 

%02d打印參數與寬度2的數,補齊0的
%n給你一個換行符

2
String str; 
if (num2 < 10) str = "0" + num2; 
else str = "" + num2; 

System.out.println("Value is: " + str); 
+0

當你需要一個簡單的按鈕時,哪裏可以找到? – thatidiotguy

+0

@thatidiotguy你需要什麼輕鬆按鈕? –

+0

哈哈,享受推動它,聽到「很容易」的短語的樂趣。 – thatidiotguy

3
System.out.println((num2 < 10 ? "0" : "") + num2); 

一個襯墊:-)

2

看一看PrintStream.format,這將允許您使用指定的寬度和填充字符打印。您可以使用System.out.format代替println

你的情況是非常簡單的,過目syntax格式字符串:

System.out.format("%02d", num2); 

這裏是最小寬度,指定結果用零填充,如果結果的寬度小於2

1

可以使用除去額外的數字,而不是方法。

System.out.println(("" + (int)(Math.random()*100 + 100)).substring(1)); 

或者使用String格式。

String s = String.format("%02d", (int)(Math.random()*100)); 

System.out.printf("%02d", (int)(Math.random()*100)); 

我一般會用最後的選擇,因爲它允許你結合其他字符串,並打印出來。

+0

你認爲如果需要的話可以追加額外的0嗎?如果是這樣,爲什麼?此外,你得到的數字從100到199,而不是0到99,但我希望你知道這一點。 –

+0

刪除第一個數字100到199之後變成00到99.至於它的更好是否是味道的問題。 –

+0

它使得代碼難以閱讀,並且很可能更慢(即使非常小)...在使用子字符串來完成這項工作時完全沒有看到任何要點。 –