我目前正在尝试使用java创建一个嵌套的Loop语句,如何使用java创建新的嵌套for Loop语句,它提供以下输出:
8
5 5 5 6 5 8 9 5 6 8
7 7 8 7 6 7 8 8 9 7
8 7 6 7 8 7 5 6 8 7
9 9 9 8 9 7 9 8 9 9
7 8 8 7 8 7 8 9 6 8
6 5 6 4 5 6 5 6 6 6
7 8 7 7 6 8 7 8 6 6
5 7 6 7 6 7 6 7 7 7
上述数字存储在名为data1.txt的文本文件中,但需要使用2D数组正确显示为整数,
以下是我对代码的尝试:
import java.util.*;
import java.io.*;
/**
* class <code>ReadMarks</code> simulates storing student data in a collection.
*
* @author
* @version 09 Feburary 2014
*/
public class ReadMarks
{
/**
* Constructor for objects of class ReadMarks
*/
public ReadMarks()
{
}
/**
* An example of a method - replace this comment with your own
*
*/
public void readMarksData(String fileName) throws FileNotFoundException
{
File dataFile = new File(fileName);
Scanner scanner = new Scanner(dataFile);
while( scanner.hasNext() )
{
String info = scanner.nextLine();
System.out.println(info);
}
scanner.close();
}
for (int i= 0; i <8; i++)
for (int j=1; j<=i; j++)
System.out.print(i*j + "\t");
}
for (int row=1; row<=10; row++)
{
for (int col=1; col<=8; col++)
System.out.print(row*col + "\t");
System.out.println();
}
任何答案或回复都将不胜感激
答案 0 :(得分:0)
在您的代码中,您不会从文件中读取数字,只需读取整行并打印即可。如果你想阅读所有这些整数,你应该写下这样的东西:
List<Integer> ints = new LinkedList<>();
while (scanner.hasNextInt()) {
ints.add(scanner.nextInt());
}
现在,ints
变量保存从文件中顺序读取的所有整数。然后我们需要打印它们。正如你已经注意到的那样,你需要两个带嵌套的循环。但是,您假设有10行8列。如果没有怎么办?如果我们想重新格式化输出怎么办?我们宁愿设置列数,我们将根据需要打印多行:
int columnCount = 10;
for (int i = 0, l = ints.size(); i < l;) {
for (int c = 0; c < columnCount; c++, i++) {
System.out.printf("%3d", ints.get(i));
}
System.out.println();
}
现在您只需更改columnCount
的值即可重新格式化输出。如果你需要将这个矩阵打印为正方形(这实际上不可能,因为int count不足以形成正方形),你可以计算{{1}中int数的平方根列出并比较它的平方与实际长度 - 如果这些值匹配,则意味着您可以将ints
的值设置为int count的平方根,并且对于良好的方阵矩阵感到满意。