我是java的新学员,我正在扫描.dat文件,我想将其作为blueJ中的表格打印出来。我的代码如下:
Scanner sc = new Scanner(new File ("test01.dat"));
for (int r = 0; r < 6; r++){
for (int c = 0; c < 3; c++){
int temp = 0;
temp = sc.nextInt();
tri[r][c] = temp;
System.out.print(tri[r][c]+" ");
}
System.out.println();
sc.nextLine();
}
我几乎到达那里但我的问题是打印出的结果是19个数字,最后是零。(它应该是18个数字,最后没有零) 我该怎样摆脱那个零? 哦,此外,我的输入只是一个包含18个数字的列,我将其更改为包含6行和3列的表格。 有关详细信息,请参阅我的文件的链接:https://onedrive.live.com/redir?resid=B6E07F4C7635D773!4577&authkey=!AL9Zw4b4CWlS630&ithint=file%2cdat 感谢所有的评论,最后我找到了我需要的东西〜(^ o ^)〜
答案 0 :(得分:1)
问题是在sc.nextInt之后使用sc.nextLine。
Scanner sc = new Scanner(new File ("test01.dat"));
for (int r = 0; r < 6; r++){
for (int c = 0; c < 3; c++){
int temp = 0;
temp = Integer.parseInt(sc.nextLine().trim());
tri[r][c] = temp;
System.out.print(tri[r][c]+" ");
}
System.out.println();
}
这应该解决它!
请注意,您的文件每行应该有一个整数。
答案 1 :(得分:0)
提供的答案StackFlowed是正确的。只需注释掉&#34; sc.nextLine()&#34;在外部for循环。它会让你在每一行之后跳过一个数字。