Java 如何打印四列数据
我有一个数组的数据,我正试图把它转换成一种格式,如Java 如何打印四列数据,java,arrays,multiple-columns,Java,Arrays,Multiple Columns,我有一个数组的数据,我正试图把它转换成一种格式,如 Frequencies: 1 (221)- 12 (229)+ 23 (230)+ 34 (223)- 2 (229)+ 13 (235)+ 24 (236)+ 35 (237)+ 3 (217)- 14 (225)- 25 (241)+ 36 (238)+ 4 (201)- 15 (223)- 26 (251)+ 37 (233)+ 5 (228)- 16
Frequencies:
1 (221)- 12 (229)+ 23 (230)+ 34 (223)-
2 (229)+ 13 (235)+ 24 (236)+ 35 (237)+
3 (217)- 14 (225)- 25 (241)+ 36 (238)+
4 (201)- 15 (223)- 26 (251)+ 37 (233)+
5 (228)- 16 (238)+ 27 (244)+ 38 (219)-
6 (235)+ 17 (232)+ 28 (224)- 39 (234)+
7 (229)+ 18 (240)+ 29 (231)+ 40 (229)+
8 (227)- 19 (217)- 30 (225)- 41 (263)+
9 (200)- 20 (198)- 31 (230)+ 42 (221)-
10 (211)- 21 (252)+ 32 (226)- 43 (243)+
11 (221)- 22 (228)- 33 (215)- 44 (227)-
我搞不懂的是,我怎么才能下降到11,然后进入一个新的专栏,下降到11,依此类推?感谢您的时间,噢,这是java。我假设您有一个1D数组,您正试图将其组织成列以供显示。这有时可能很棘手,但基本上可以归结为:
元素
是您要打印的内容):
有关可以指定为的格式字符串的详细信息,请参见
然后,由于一次只能打印一行,因此需要能够确定给定行和列编号的元素的索引。这要求您能够提前计算行数。假设您有一个数组列表元素
:
int rows = elems.size() / 4;
现在,使用行
作为行中相邻元素之间的偏移量,一次输出一行:
PrintWriter out = System.out; // or whatever
for (int r = 0; r < rows; ++ r) {
for (int c = 0; c < 4; ++ c) {
int index = c * rows + r;
if (index < elems.size()) {
printElement(out, elems.get(index)); // print data
out.print(" "); // column spacer
}
}
out.println(); // line ending after each row
}
PrintWriter out=System.out;//或者别的什么
对于(int r=0;r
旁注:当然,在(现在很少见的)情况下,您的唯一输出是到一个合适的终端,您也可以使用,例如,显式设置屏幕上的输出行和列。但是,这可能不是您所处的情况。public void genStats(int[]数组)
public void genStats(int[] array)
{
int mod = array.length / 4;
for(int i = 0; i < mod; i++)
{
System.out.println(array[i] + " " + array[i + mod*1]
+ " " + array[i + mod*2] + " " + array[i + mod*3]);
}
}
{
int mod=array.length/4;
对于(int i=0;i
如果array.length
不是4的倍数,这将在最后一行抛出ArrayIndexOutOfBoundsException
。此外,在示例int[]
中,它不能保证固定宽度的列(例如打印1
与1000
)。
public void genStats(int[] array)
{
int mod = array.length / 4;
for(int i = 0; i < mod; i++)
{
System.out.println(array[i] + " " + array[i + mod*1]
+ " " + array[i + mod*2] + " " + array[i + mod*3]);
}
}