2012-09-24 117 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

它使得代码难以阅读,并且很可能更慢(即使非常小)...在使用子字符串来完成这项工作时完全没有看到任何要点。 –