簡體   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