2009-10-12 95 views
-1

我有類似的問題很少變化,這是:如何從文本文件中讀取數字並將其保存在「使用MATLAB或JAVA」的數組中?

我有文本文件包含大量的具有不同尺寸的「即不是所有的行具有相同的長度」 每一行只包含整數行。

作爲一個例子A.TXT =

4 6 4 1 2 2 5 7 7 

0 9 5 5 3 2 43 3 32 9 0 1 3 1 

3 4 5 6 7 4 

34 5 8 9 0 7 6 2 4 5 6 6 7 5 4 3 2 21 4 9 8 4 2 1 5 

我想把這些整數到一個數組所以每個整數將陣列中的行保存一個元素,並從「重疊」,即我需要保持每個原樣。

有人能幫助我嗎?

+3

我們不打算這樣做對我們整個家庭作業。告訴我們你已經做了什麼,你嘗試過了什麼,以及它沒有奏效。 – 2009-10-12 15:10:44

+0

這是我試圖做的巨大計劃。 它與我的碩士學位項目有關。 但這個單一點我延遲了! 你能幫忙嗎? – sami 2009-10-12 15:37:09

回答

5
a = dlmread('a.txt') 

A =

列1至21

4  6  4  1  2  2  5  7  7  0  0  0  0  0  0  0  0  0  0  0  0 
0  9  5  5  3  2 43  3 32  9  0  1  3  1  0  0  0  0  0  0  0 
3  4  5  6  7  4  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
34  5  8  9  0  7  6  2  4  5  6  6  7  5  4  3  2 21  4  9  8 

列22至25

0  0  0  0 
0  0  0  0 
0  0  0  0 
4  2  1  5 
+0

greaaaaaat !!!!!! 這個單一的命令解決了我的問題! 很多很多感謝兄弟!!!!!!!! – sami 2009-10-12 16:20:08

+0

薩米人,如果這是你最喜歡的答案,請使用「接受答案」功能。 – MatlabDoug 2009-10-13 13:18:35

0

我會做到以下幾點:

1)每行

2)讀線,一次一個從文件

3)分割每行創建一個新的磁盤陣列的「空間「字符

4)遍歷從split操作獲得的String [],將每個值傳遞給Integer.parseInt(value);

5)將數值存儲在數組中;

6)讀取下一行時,創建新數組以存儲新的行值。

+0

感謝您對 的好感,但是6)需要調整,那就是我需要整個文件在一個數組中 那麼你能給我怎麼做? – sami 2009-10-12 15:32:02

0

您可以使用Scanner(一次一行)讀取數據,並將數字存儲在List(例如,一個ArrayList

import java.util.*; 
import java.io.*; 

public class Numbers 
{ 
    public static void main(String[] args) throws FileNotFoundException 
    { 
    Scanner data = new Scanner(new File("A.txt")); 
    List<List<Integer>> ints = new ArrayList<List<Integer>>(); 

    while (data.hasNextLine()) { 
     List<Integer> lineInts = new ArrayList<Integer>(); 
     Scanner lineData = new Scanner(data.nextLine()); 

     while (lineData.hasNextInt()) { 
     lineInts.add(lineData.nextInt()); 
     } 

     ints.add(lineInts); 
    } 

    System.out.println(ints); 
    } 
} 

這段代碼打開文件進行讀取,並創建一個二維ArrayList。外部列表包含文件中每行的列表。內部列表包含各個行上的整數。請注意,空行會導致空列表。此外,與上面顯示的代碼不同,您必須正確處理任何IO異常。

如果您確實需要二維數組中的整數而不是ArrayList,那麼您必須調用toArray或更改上面的代碼。這留給了讀者一個練習。

相關問題