java如何创建并初始化一个动态的二维数组

解析字符串分隔与转换为二维数组的Java代码实例
本文详细介绍了如何使用Java将一个包含多个由分号分隔的字符串数组转换为二维数组的过程,包括字符串的分割、类型转换以及遍历输出二维数组元素。

首先要定义一个类型的二维数组 String[][] a;

然后定义一维数组长度 a = new String[i][];

接着定义二维数组长度 a[i] = new String[j]

例如下面的例子:将一个字符串的内容分隔,并且放入一个二维数组中 

  public class TestToString {
     public static void main(String[] args) {
       String s = "0,1;3,6,4;7,1";
       String[] a = s.split(";");
       double[][] d;
       d = new double[a.length][];
       for(int i=0; i<a.length; i++){
           String[] s_num = a[i].split(",");
           for(int j=0; j<s_num.length; j++){
               d[i] = new double[s_num.length];
               d[i][j] = Double.parseDouble(s_num[j]);
               System.out.println("d[" + i + "][" + j +"] = " + d[i][j]);
                   }
       }

    }
}


Java创建初始化二维数组有以下几种常见方法: ### 动态初始化 动态初始化时,只需指定数组行数和列,系统会自动为数组素赋默认值(对于 `int` 类型,默认值是 0)。示例代码如下: ```java public class ArrayTest09 { public static void main(String[] args) { // 定义一个二维数组动态初始化它 int[][] a = new int[3][4]; } } ``` 这里创建一个 3 行 4 列的二维数组 `a`,每个素的初始值都是 0 [^2]。 ### 静态初始化 静态初始化时,直接在定义数组的同时为数组素赋值。示例代码如下: ```java public class ArrayTest09 { public static void main(String[] args) { // 静态初始化一个二维数组 int[][] a1 = { {1, 2, 3, 4}, {45, 25, 1, 3}, {4, 5, 8, 9} }; } } ``` 这里创建一个 3 行 4 列的二维数组 `a1`,为每个素赋予了指定的值 [^2]。 ### 省略形式的静态初始化 在方法调用时,可以使用省略形式的静态初始化。示例代码如下: ```java public class ArrayTest09 { public static void main(String[] args) { // 正确的传参方式 printArray(new int[][]{{1, 2, 3, 4}, {45, 25, 1, 3}, {4, 5, 8, 9}}); } // 定义一个含有二维数组的方法 public static void printArray(int[][] array) { // 遍历输出二维数组 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.print(array[i][j] + " "); } // 换行 System.out.println(); } } } ``` 在调用 `printArray` 方法时,直接使用 `new int[][]{{...}}` 的形式创建初始化二维数组 [^2]。 ### 默认初始化 如果只定义不赋值,Java 会为 `int` 二维数组素默认初始化为 0。示例代码如下: ```java public class Main { public static void main(String[] args) { int[][] arr; arr = new int[2][3]; // 此时 arr 中的素默认值都是 0 } } ``` 这里创建一个 23 列的二维数组 `arr`,每个素的初始值都是 0 [^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值