2017-01-20 13 views
-6

私は多次元配列を持つ分割:Javaの多次元配列は

// nums[3][0] 
String[][] nums = new String[3][0]; 
nums = {{32,123,74},{543,98,5},{96,24,23},{12,98,56}} 
System.out.println(nums[0][0])

ター出力は、私が列を分割したい32, 123, 74 なので、出力は次のようにする必要があります:

System.out.println(nums[0][0]); // Output: 32 
System.out.println(nums[1][2]); // Output: 5 

私はnums[0][0] = nums[0][0].split(",");を試しましたが、エラーがありました

私はそれができませんでした。

+3

ようこそStackOverflow!あなたがすでに試したことを、たとえそれがうまくいかなくても見せてくれれば、人々はあなたを助けてくれるでしょう。それから、私たちは正しい方向にあなたを導くのを助けることができます。あなたの問題を単に解決すれば、実際には何も学ばないでしょう。 – Michael

+2

コードはコンパイルされません。文字列配列で整数を使用することはできません。結果の配列は開始配列と同じです。 –

+0

あなたは '{{32,123,74}、{543,98,5}、{96,24,23}、{12,98,56}}と' {{32,123,74}、 {543,98,5}、{96,24,23}、{12,98,56}}? –

答えて

3

私はあなたが尋ねたいものを正しく理解してくれることを望みます。

まず、既に言及したように、整数をString配列に格納することはできません。

第2に、Javaの2次元配列は実際には配列の配列です。したがって、int[][] nums = int[4][3]を宣言すると、int[]アレイnumsを作成し、4つのエレメントがあり、これらの要素のそれぞれがもう1つのint[]の長さ3の配列です。したがって、2次元配列が一種の行列であると想像すれば、 numsの要素として配列されています。

int[][] nums = {{32, 123, 74}, {543, 98, 5}, {96, 24, 23}, {12, 98, 56}}; 

int[] rowOne = nums[0];  // {32, 123, 74} 
int[] rowTwo = nums[1];  // {543, 98, 5} 
int[] rowThree = nums[2]; // {96, 24, 23} 
int[] rowFour = nums[3]; // {12, 98, 56} 

「列」の取得は、Javaの観点からはあまりにも時間がかかります。でも、次のようにこれを行うことができます:

int[] columnOne = new int[nums.length]; 
for (int i = 0; i < columnOne.length; i++) { 
    columnOne[i] = nums[i][0]; // {32, 543, 96, 12} 
} 

int[] columnTwo = new int[nums.length]; 
for (int i = 0; i < columnTwo.length; i++) { 
    columnTwo[i] = nums[i][1]; // {123, 98, 24, 98} 
} 

int[] columnThree = new int[nums.length]; 
for (int i = 0; i < columnThree.length; i++) { 
    columnThree[i] = nums[i][2]; // {74, 5, 23, 56} 
}