繁体   English   中英

将文件中的值存储到数组中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM