Java 算法在每个 x 行选项卡之后排序到新列
Java algorithm sort after every x line tab to new column
我有一个包含 400 行的 a.txt
文件,我需要将序列中的每第 100 行分成一个新列,因此我将有 4 列,每列 100 行。
我想要的序列是这样的:1->101->201->301 下一行:2->102->202-> 等等...
相反,我得到 1->2->3->4 下一行:5->6->7->8
y
表示我同时工作的另一个序列,我希望每 6 行读取一次 space。
到目前为止,这是我的代码:
int x = 0;
int y = 0;
int z = 0;
int xfinal = 100;
int yfinal = 6;
int zfinal = 4;
int fim= (xfinal*zfinal)+1;
PrintWriter output = new PrintWriter("C:\path\file.txt");
try {
for (x = 0; x < xfinal; x++){
for (y = 0; y < yfinal; y++){
for (z = 0; z < zfinal; z++) {
int pos = (zfinal * yfinal) * x + (zfinal * y) + z;
if (pos >= fim) {
output.print("\t");
continue;
}
output.print(lines.get(pos) + "\t");
}
output.print("\r\n");
}
output.print("\r\n");
}
} catch(Exception e) {
e.printStackTrace();
}
由于我是 java.
的新手,所以我已经解决这个问题很长时间了,无法理解如何正确排序
据我了解你的问题尝试使用这样的 if 语句:
for (int x=0; x<xfinal; x++){
if(x%100==0){
output.print("\n");
}
}
这样每循环 100 x 就会换行,
您可以每 6 行使用制表符执行类似操作。
您将需要这样的东西(假设 lines
是包含所有 a.txt 行的数组):
//read file a.txt into the array lines
String lines[] = raedFileIntoArray("a.txt");
int numberOfLines = lines.length;
int numberOfCols = 4;
int maxNumOfLines = numberOfLines / numberOfCols;
for (int row = 0; row < maxNumOfLines; ++row) {
for (int col = 0; col < numberOfCols; ++col) {
System.out.print(lines[maxNumOfLines * col + row]);
if (col + 1 < numberOfCols)
System.out.print("\t");
}
System.out.print("\n");
}
我有一个包含 400 行的 a.txt
文件,我需要将序列中的每第 100 行分成一个新列,因此我将有 4 列,每列 100 行。
我想要的序列是这样的:1->101->201->301 下一行:2->102->202-> 等等... 相反,我得到 1->2->3->4 下一行:5->6->7->8
y
表示我同时工作的另一个序列,我希望每 6 行读取一次 space。
到目前为止,这是我的代码:
int x = 0;
int y = 0;
int z = 0;
int xfinal = 100;
int yfinal = 6;
int zfinal = 4;
int fim= (xfinal*zfinal)+1;
PrintWriter output = new PrintWriter("C:\path\file.txt");
try {
for (x = 0; x < xfinal; x++){
for (y = 0; y < yfinal; y++){
for (z = 0; z < zfinal; z++) {
int pos = (zfinal * yfinal) * x + (zfinal * y) + z;
if (pos >= fim) {
output.print("\t");
continue;
}
output.print(lines.get(pos) + "\t");
}
output.print("\r\n");
}
output.print("\r\n");
}
} catch(Exception e) {
e.printStackTrace();
}
由于我是 java.
的新手,所以我已经解决这个问题很长时间了,无法理解如何正确排序据我了解你的问题尝试使用这样的 if 语句:
for (int x=0; x<xfinal; x++){
if(x%100==0){
output.print("\n");
}
}
这样每循环 100 x 就会换行, 您可以每 6 行使用制表符执行类似操作。
您将需要这样的东西(假设 lines
是包含所有 a.txt 行的数组):
//read file a.txt into the array lines
String lines[] = raedFileIntoArray("a.txt");
int numberOfLines = lines.length;
int numberOfCols = 4;
int maxNumOfLines = numberOfLines / numberOfCols;
for (int row = 0; row < maxNumOfLines; ++row) {
for (int col = 0; col < numberOfCols; ++col) {
System.out.print(lines[maxNumOfLines * col + row]);
if (col + 1 < numberOfCols)
System.out.print("\t");
}
System.out.print("\n");
}