2016-04-27 20 views
1

誰か助けてくれますか? deepToString()メソッドを使用して最初に作成された文字列を配列に変換しようとしています。 Stack Overflow&hellipで見つけられるものは何でも試しました。運がない。Java deepToString to配列 - 行列の乗算

これは私が今持っているものです。

import java.util.*; 

public class Test3 { 
    static int matrix [][] = new int[2][2]; 

    public static int[][] matrixGenerator() { 
     Random r = new Random(); 
     for (int i = 0; i < matrix.length; i++) { 
      for (int j = 0; j < matrix[i].length; j++) { 
       matrix[i][j] = r.nextInt(10000); 
      } 
     } 
     return matrix; 
    } 
    public static void main(String args[]){ 
     String matrix1 = Arrays.deepToString(matrixGenerator()); 
     String matrix2 = Arrays.deepToString(matrixGenerator()); 
     System.out.println(matrix1 + '\n' + matrix2); 
    } 
} 

これは

[[6030、3761]、[6605、5582]]

を出力

[[1799、461]、[1197,1012]]私が必要とする正確に何である

。今私はこのコードを使って行列の乗算をしようとしています。

int m1rows = matrix1.length; 
int m1cols = matrix1[0].length; 
int m2cols = matrix2[0].length; 

int[][] result = new int[m1rows][m2cols]; 
    for (int i = 0; i < m1rows; i++) { 
     for (int j = 0; j < m2cols; j++) { 
      for (int k = 0; k < m1cols; k++) { 
      result[i][j] += matrix1[i][k] * matrix2[k][j]; 
     } 
    } 
} 
実際には配列ではないため、配列をループできないという問題があります。文字列です。どちらが理にかなっている。誰かがループする方法を教えてもらえますか?私は戻って、配列に文字列を変換しようとした - しかし、運

+0

文字列の場合、[]と、で区切って配列を作成できませんか? – Alex

+0

それを分割し、それを整数tに解析します。あなたの操作を行います:) –

+0

どうすればいいですか? ( – Selyst

答えて

0

は、なぜあなたは戻って行列に[文字列に行列のconvertionを必要としないし、できますか? あなたは簡単に使用できますか

public static void main(String[] args) { 
     int matrix1 [][] = matrixGenerator(); 
     int matrix2 [][] = matrixGenerator(); 
     int matrix3 [][] = matrixMultiplication(matrix1, matrix2); 
     String matrix1Str = Arrays.deepToString(matrix1); 
     String matrix2Str = Arrays.deepToString(matrix2); 
     String matrix3Str = Arrays.deepToString(matrix3); 
     System.out.println(matrix1Str+'\n'+matrix2Str+'\n'+matrix3Str); 
    } 

    public static int[][] matrixGenerator(){ 
     int matrix [][] = new int[2][2]; 
     Random r = new Random(); 
     for(int i=0; i < matrix.length; i++){ 
      for(int j=0; j < matrix[i].length; j++){ 
       matrix[i][j] = r.nextInt(10000); 
      } 
     } 
     return matrix; 
    } 

    public static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) { 
     int m1rows = matrix1.length; 
     int m1cols = matrix1[0].length; 
     int m2cols = matrix2[0].length; 

     int[][] result = new int[m1rows][m2cols]; 
      for (int i=0; i< m1rows; i++){ 
       for (int j=0; j< m2cols; j++){ 
        for (int k=0; k< m1cols; k++){ 
        result[i][j] += matrix1[i][k] * matrix2[k][j]; 
       } 
      } 
     } 
     return result; 
    } 
+0

あなたは星です!それは私が必要としていたものでした!ありがとう! – Selyst