我是一名新的 Java 程序员,目前正在开始学习如何读取文件。我正在从事一项活动,我需要在一个单独的方法中将文本文件中的数字读取到整数数组中,然后在 main 方法中从三个数组中的每一个添加值。这是我到目前为止所拥有的:import java.util.Scanner;import java.io.File;import java.io.FileNotFoundException;public class FileToArrays{ public static void main(String[] args){ int[] b = new int [7]; int[] l = new int [7]; int[] d = new int [7]; readFile(b, l, d); System.out.println("Sum of First Numbers: "+(b[0]+l[0]+d[0])); System.out.println("Sum of Second Numbers: "+(b[1]+l[1]+d[1])); System.out.println("Sum of Third Numbers: "+(b[2]+l[2]+d[2])); System.out.println("Sum of Fourth Numbers: "+(b[3]+l[3]+d[3])); System.out.println("Sum of Fifth Numbers: "+(b[4]+l[4]+d[4])); System.out.println("Sum of Sixth Numbers: "+(b[5]+l[5]+d[5])); System.out.println("Sum of Seventh Numbers: "+(b[6]+l[6]+d[6])); System.out.println(""); } static void readFile(int[] b, int[] l, int[] d){ try{ Scanner scnr = new Scanner(new File("Input.txt")); int day = 0; while(scnr.hasNextLine()){ String line = scnr.nextLine(); String [] words = line.split(" "); b[day] = Integer.parseInt(words [0]); l[day] = Integer.parseInt(words [1]); d[day] = Integer.parseInt(words [2]); day++; } scnr.close(); }catch(FileNotFoundException e){ System.out.println("Unable To Find File"); } }}我读入数组的数字的文本文件(“Input.txt”)格式为:800 1000 800450 845 12001800 250 4000 1500 1800600 500 1000700 1400 1700675 400 900程序编译没有错误,但是当我尝试运行它时,三个数组中的每个值都显示为 0。我觉得这个问题可能是一些微不足道的问题,比如我的参数和格式错误,或者我可能搞砸了我将文件读入数组的方式。然而,任何关于我在哪里搞砸的见解或关于将来如何处理类似任务的建议都将不胜感激。感谢您的时间。
2 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
欢迎杰克,该代码看起来不错,但对于提供的文件/数据却无法正常工作。如果仔细观察,数字之间有不止一个空格。你在每个空间上夹着一条线String [] words = line.split(" "),它给你一个比你预期的更大的数组。
这种“任务”的更好方法是使用Scanner.next(),这将忽略所有空格。
尝试用以下代码替换您的代码:
while(scnr.hasNext()){
b[day] = scnr.nextInt();
l[day] = scnr.nextInt();
d[day] = scnr.nextInt();
day++;
}
添加回答
举报
0/150
提交
取消