[英]Java - Format double array
我在下面创建了一个循环,该循环将在1和999之间“随机”显示大约50个数字。我的问题是我需要打印出循环外的整个数组(尝试),但是我需要使用相同的格式我已经在循环中打印了它。
我尝试了几种方法,但是它总是抛出错误,主要是与“非法转换”有关。
// Imports
import java.util.Arrays;
import java.text.DecimalFormat;
// Class
public class Random50
{
public static void main(String[] args)
{
// Declaration
double[] Random50Array = new double[51];
DecimalFormat df = new DecimalFormat("000");
int i;
// Loops
for(i = 0; i < Random50Array.length; i++)
{
Random50Array[i] = (int)(Math.random() * 999);
System.out.print(df.format(Random50Array[i]) + ", ");
}
System.out.println("");
System.out.println("");
String RandomArray = (Arrays.toString(Random50Array));
System.out.printf("%03d", RandomArray);
}
}
我感谢将来提供的任何指导。 :)
您可以将格式化后的字符串一起添加到循环中,然后一次将它们全部打印出来。
// ...
StringBuilder builder = new StringBuilder();
for(i = 0; i < Random50Array.length; i++)
{
Random50Array[i] = (int)(Math.random()*999);
String output = df.format(Random50Array[i])+ ", ";
System.out.print(output);
builder.append(output);
}
System.out.println("");
System.out.println("");
System.out.print(builder.toString());
请注意,您不应使用System.out.printf("%03d", "...");
打印字符串,因为"%03d"
表示您要传递的参数是数字。 这是您遇到错误的原因。
优化代码:不需要双数组,不是吗
StringBuilder builder = new StringBuilder();
for(i = 0; i < Random50Array.length; i++)
{
String output = df.format((int)(Math.random()*999)+ ", ";
builder.append(output);
}
System.out.println("");
System.out.println("");
System.out.print(builder.toString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.