我想将.txt文档中的值存储到数组中。我已经尝试了这个solutions,但没有一个工作过。我想将值存储在数组中,因为我将在未来的方法中使用该数组来获得平均值,总和等。
这就是我提出的:
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
任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分:0)
在打印出阵列之前,您需要将文件实际读入数组:
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]);
}
}
答案 1 :(得分:0)
最简单的方法是将其存储在列表中。
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;
}
干杯伴侣。
答案 2 :(得分:0)
使用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);
}