2017-08-02 15 views
-2

私は以下のコードを使ってファイルから行列を読み込み、うまくいくが、今は行と列を空白で分割して使用する必要がある別の機能で。残念ながら、私はArrayListをどのように扱うことができるのか分からないので、誰も私がこのコードを編集するのを助けることができますか?txtファイルから行列を読んで2D配列に保存

private static void read(Matrix matrix) throws UnsupportedEncodingException, IOException { 
    String line = null; 
    List<String[]> list = new ArrayList<String[]>(); 
    BufferedReader reader = new BufferedReader(new FileReader("D:\\TDarray.txt")); 
    while ((line = reader.readLine())!=null) { 
     list.add(getArray(line)); 
    }   
    reader.close(); 

    for (String[] stringArr : list) { 
     for(String str : stringArr){ 
      System.out.print(str+" "); 
     } 
     System.out.println(""); 
    } 
} 

private static String[] getArray(String s){ 
    String[] array = s.split("\\s"); 
    return array; 
} 

と、これは私のテキストファイルのサンプルです:ちょうど\nを追加改行して列を分割する

3.2 4.7 
0.4 0.5 0.6 0.1 0.7 
0.1 0.8 0.4 
0.1 0.3 0.4 0.9 1.0 
0.2 0.9 0.6 0.7 0.2 
+0

としてそれを保存するにはポイントがありませんか? – Guy

+0

デバッグヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[mcve]を作成する方法。あなたの*質問を改善するために "編集"リンクを使用してください - コメントでより多くの情報を追加しないでください。ありがとう! – GhostCat

+0

あなたの '.txt'ファイル内の行列の現在の構造は何ですか? – FreshD

答えて

0

。あなたの印刷出力のために、これを使うこともできます。印刷する代わりに、あなたはこれであなたのマトリックスを埋めることができます。

for (String[] stringArr : list) { 
    for(String str : stringArr){ 
     System.out.print(str+" "); 
    } 
    System.out.print("\n"); 
} 
0

このコードをそのまま使用できます。あなたは後の段階で数学的計算のためのマトリックスを使用する必要がある場合 ArrayListを持つ*契約*が正確に何を意味List<String[]>

private static Vector<Vector<Float>> loadMatrixAsVector() throws Exception { 
    String line = null; 
    BufferedReader reader = new BufferedReader(new FileReader(
      "D:\\test.txt")); 
    Vector<Vector<Float>> matrix = new Vector<Vector<Float>>(); 
    while ((line = reader.readLine()) != null) { 
     Vector<Float> rowVector = new Vector<Float>(); 
     for (String value : line.split(" ")) { 
      rowVector.add(Float.valueOf(value)); 
     } 
     matrix.add(rowVector); 
    } 
    reader.close(); 

    System.out.println("Matrix : " + matrix); 
    return matrix; 
} 
+0

ありがとうございますが、この機能をメインでどのように思い出すことができますか?私はそれを前に使っていませんでした。 –

+0

どのようにSystem.out.printlnを呼び出しますか? 基本的なJavaを最初に学びます。私たちはあなたによく書かれたjava構文を教えるためのものではありません。特定の問題にいくつかの助けが必要な場合は、まず、現在のコード/疑似コードを投稿して、問題と要件を述べてください。 静的メソッドの呼び出しmainからのメソッドはJava構文の非常に基本的な部分です – Pradatta

+0

このメソッドを呼び出すと、2Dベクトルの浮動小数点値を持つオブジェクトが作成されます。その後、あなたはそのオブジェクトで何かをすることが自由です – Pradatta

関連する問題