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