java - Java使用扫描仪将txt输入到二维数组
问题描述
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class test{
public static final int SIZE = 30;
public static final int DUE_DATE = 15;
public static final int TASK_NUMBER = 30;
public static void main(String[] args)throws FileNotFoundException{
Scanner console = new Scanner(System.in);
System.out.println("Enter input file: ");
String inputCompletionName = console.next();
boolean[][] completion = new boolean[TASK_NUMBER][SIZE];
File inputCompletion = new File(inputCompletionName);
Scanner in = new Scanner(inputCompletion);
int i = 0, j = 0;
for(j = 0; j < SIZE; j++){
for(i = 0; i < TASK_NUMBER; i++){
while(in.hasNextBoolean()){
boolean input = in.nextBoolean();
completion[i][j] = input;
}
System.out.println(completion[i][j]);
}
}
}
我试过这段代码。我的输入是一些布尔值,但输出只有第一个元素。真的不知道如何解决这个问题。
我的输入文件只是一些像这样的随机布尔值。
真假真假真假
但输出仅显示第一个元素。
解决方案
问题是这样的:
while(in.hasNextBoolean()) {
boolean input = in.nextBoolean();
completion[i][j] = input;
}
这在您的 2 for 循环内,因此您将布尔值读入同一个网格单元格。
这将起作用:
for(j = 0; j < SIZE && in.hasNextBoolean(); j++){
for(i = 0; i < TASK_NUMBER && in.hasNextBoolean(); i++){
boolean input = in.nextBoolean();
completion[i][j] = input;
System.out.println(completion[i][j]);
}
}
推荐阅读
- react-native - display webview in card (react native)
- angular - Angular:将参数传递给 this.http.get()
- c - 信号报警过早失效
- lambda - 如何为 lambda 或 java8 制作流程图?
- twitter-bootstrap - Bootstrap 4.1:使用 scrollspy 添加附加辅助侧边栏导航
- python - python中的牛顿法检查
- javascript - 动态显示和隐藏滚动条
- ssh - 如何向 Sftp 客户端(sshd-core、Mina 服务器)发送消息错误和错误状态
- sql - 两个 varchar datetime 之间的时间差
- java - 如何从固定数组中删除元素仅用于循环和附加数组