0

我使用以下方法生成 0-99 之间的随机数:

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

当数字低于 10 时,我希望它使用 0num2 打印所以如果数字是 9,它将是 09。

我怎样才能让它打印这个?

4

5 回答 5

5

您可以使用以下format()方法:

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

%02d将参数打印为宽度为 2 的数字,用 0 填充
%n为您提供换行符

于 2012-09-24T19:45:48.597 回答
3
System.out.println((num2 < 10 ? "0" : "") + num2);

一个班轮:-)

于 2012-09-24T19:44:11.187 回答
2
String str;
if (num2 < 10) str = "0" + num2;
else str = "" + num2;

System.out.println("Value is: " + str);
于 2012-09-24T19:43:26.727 回答
2

看看PrintStream.format,它将允许您使用指定的宽度和填充字符进行打印。

System.out是一个PrintStream,所以你可以使用System.out.format代替println

您的情况很简单,请查看格式字符串的语法:

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

这里2是最小宽度,如果结果的宽度小于2,0指定用零填充结果。

于 2012-09-24T19:44:18.697 回答
1

您可以改用删除多余数字的方法。

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

或使用字符串格式。

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

或者

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

我通常会使用最后一个选项,因为它允许您组合其他字符串并打印它们。

于 2012-09-24T19:46:33.887 回答