2014-02-17 113 views
0

編程極其新穎。我查了很多類似的程序,但我迷路了,試圖將它們與這個程序聯繫起來。只需尋找簡單的正確方向基本java:掃描文件,陣列

掃描儀可以方便地讀取存儲在文件中的輸入。在這個練習中,創建一個名爲「C:\ AAA \ numbers.txt」包含以下數據:

1.2 2.3 3.4 4.5 
    2.0 3.0 4.0 5.0 
    6.0 7.0 8.0 9.0 

閱讀每一條線,轉換的數字在每一行雙打,並打印數字的每一行和他們的總數。

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.ArrayList; 
import java.util.Scanner; 
import java.util.List; 

public class ScanningFiles { 
    public static void main(String[] args) throws FileNotFoundException { 

     Scanner numbersFile = new Scanner(new File("numbers.txt")); 

     List<String> tokens = new ArrayList<>(); 

     while (numbersFile.hasNextLine()) { 
      tokens = numbersFile.nextline(); 
      // put each value into an array with String#split(); 
      String[] numStrings = line.split(" "); 
      // parse number string into doubles 
      double[] numbs = new double[numString.length]; 

      for (int i = 0; i < nums.length; i++) { 
       nums[i] = Double.parseDouble(numStrings[i]); 
      } 

     } 
     numbersFile.close(); 

     System.out.println(numbers); 
    } 
} 

這就是我到目前爲止所嘗試的,但說實話,這是我的頭。我越來越很失落

+0

請向我們展示您嘗試過的方法。 –

+0

你被困在什麼?您是否搜索如何從文件中讀取一行? –

+0

Okk sir.Any更多你想要的? – Kick

回答

2

輕輕一推:

  1. 用掃描儀讀取所有作爲一個塊
  2. 查找到String.split()方法
  3. 看看它們分開成Double.parseDouble()將它們轉換
  4. 將它們加在一起並打印結果
+0

爲什麼不在'while(myScanner.hasNextDouble())'中使用'Scanner'的'nextDouble'方法來獲取每個double而不必混亂Strings? –

+0

@JonnyHenly,因爲如果你這樣做,你不知道每一行結束。 –

+0

@DavidWallace哦,我明白你的意思了。 –