[英]store values from a file into an array
我想将.txt文档中的值存储到数组中。 我已经尝试过此解决方案 ,但没有一个起作用。 我想将值存储在数组上,因为我将在以后的方法中使用该数组来获取平均值,总和等。
这是我想出的:
import java.util.Scanner;
import java.io.*;
public class example{
public static void main(String[] args)throws IOException{
Scanner input = new Scanner(new File("integers.txt"));
int counter = 0;
while(input.hasNext()){
int numbers = input.nextInt();
counter++;
}
int[] array = new int[counter];
for(int i =0; i < array.length; i++){
System.out.println(array[i]);
}
}
}
我的输出是:0 0 0 0 0 0 0 0 0 0 0 0 0
它应该是文件上的数字:
1 2 3 4 5 6 7 8 9 10 11 12 13
任何帮助都感激不尽。 先感谢您。
在打印出阵列之前,您需要将文件实际读入阵列:
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("integers.txt"));
int counter = 0;
while (input.hasNext()) {
counter++;
}
int[] array = new int[counter];
for (int i = 0; i < array.length; i++) {
array[i] = input.nextInt();
System.out.println(array[i]);
}
}
最简单的方法是将其存储在列表中。
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("integers.txt"));
List<Integer> numbers = new ArrayList();
while (input.hasNextInt()) {
numbers.add(input.nextInt());
}
numbers.forEach(System.out::println);
}
sum方法可能是这样的:
private static int sum(List<Integer> numbers) {
int total = 0;
for (int number : numbers) {
total += number;
}
return total;
}
队友的欢呼声。
使用Java Stream然后转换为数组是简单的2行代码。 1行打印结果。
public static void main(String[] args) {
Stream<String> streamString = Files.lines(Paths.get("integers.txt"));
int[] intArray = streamString.mapToInt(Integer::parseInt).toArray();
Arrays.stream(intArray).forEach(System.out::println);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.