java多维数组拆分

时间:2017-01-20 09:48:36

标签: java arrays multidimensional-array split

我有一个多维数组:

// 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(",");但是出现了错误

我被困了,我无法做到。

1 个答案:

答案 0 :(得分:3)

我希望我已经正确地理解了你想要问的内容。

首先,因为已经提到过,你不能在String数组中存储整数。

其次,在Java中,二维数组实际上是数组的数组。因此,当您声明int[][] nums = int[4][3]时,您创建了一个具有四个元素的int[]数组nums,并且每个元素都是另一个长度为3的int[]数组。所以,如果你想象你的二维数组是一种矩阵,你可以很容易地将它的“行”作为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}
}