我是计算机科学的初学者,我在尝试将文本文件中的整数放入数组时遇到了一些麻烦。文本文件中有七行整数,每行有3个整数,用空格隔开,如:
0 15 20
100 25 96
85 42 15
52 63 47
85 44 98
41 55 74
85 74 15
我应该将每行中的三个数字放入三个不同的数组中,这样一个数组将包含第一个数字,第二个数组将包含第二个数字,第三个数组将包含第三个数字,全部来自同一行。 我的代码在下面,但是当它运行时,我得到一个没有这样的元素异常,当我打印第一个数组时,它显示存储在数组的第一个位置的第一个数字,但其余的数字是第二个数字每一行。循环中发生了什么?:(我很感激任何类型的解释。
import java.io.*;
import java.util.Scanner;
import java.util.Arrays;
public class Trying{
public static void main(String [] args){
Scanner s=null;
int [] a= new int [7];
int [] b= new int [7];
int [] c= new int [7];
int i=0;
try{
s= new Scanner(new File("input.txt"));
while(s.hasNextLine()){
String line=s.nextLine();
Scanner cal= new Scanner(line);
a[i]=cal.nextInt();
b[i]=cal.nextInt();
c[i]=cal.nextInt();
i++;
}
}
catch(Exception eee){
eee.printStackTrace();
}
System.out.println(Arrays.toString(a));
}
}
答案 0 :(得分:0)
你应该替换“c [i] = s.nextInt();” “c [i] = cal .nextInt();”。我认为您错误地使用了s扫描仪对象而不是cal扫描仪对象。
您也可以使用String.split()方法。 而不是使用
String line=s.nextLine();
Scanner cal= new Scanner(line);
a[i]=cal.nextInt();
b[i]=cal.nextInt();
c[i]=s.nextInt();
你可以试试这个:
String[] lines=s.nextLine().split(" ");
a[i]=Integer.parseInt(lines[0]);
b[i]=Integer.parseInt(lines[1]);
c[i]=Integer.parseInt(lines[2]);