21xrx.com
2025-03-25 12:18:23 Tuesday
文章检索 我的文章 写文章
如何用Java将字符串转化为二维数组?
2023-06-16 13:05:23 深夜i     --     --
Java 字符串 二维数组 转化 分割 列数 赋值

在Java编程中,有时候需要将一个字符串转化为二维数组来进行进一步的处理。这个过程可能看起来有些麻烦,但实际上只需要几行代码即可完成。在本文中,我们将介绍如何使用Java将字符串转化为二维数组,并提供一些实用的代码示例。

首先,我们需要将字符串以某种方式分离成行和列。常见的做法是将字符串按回车符分割成行,再根据列之间的分隔符分割成列。这里提供一个示例代码,可以将包含“;”分隔符的字符串转化为二维数组:

String inputString = "aaa;bbb;ccc\n111;222;333\n";
String[] rows = inputString.split("\n");
String[][] matrix = new String[rows.length][];
for (int i = 0; i < rows.length; i++) {
 matrix[i] = rows[i].split(";");
}

上述代码首先将输入字符串按回车符分隔为行,然后按“;”分隔为列,最终生成一个二维数组。需要注意的是,此方法生成的数组中每一行的列数可能不同,需要进行后续处理。

如果要求生成的二维数组每个元素的长度相同,可以先查找列数最多的那一行,然后在创建二维数组时指定列数。示例代码如下:

String inputString = "aaa;bbb;ccc\n111;222;333\n66;77";
String[] rows = inputString.split("\n");
int maxColumns = 0;
for (String row : rows) {
 maxColumns = Math.max(maxColumns, row.split(";").length);
}
String[][] matrix = new String[rows.length][maxColumns];
for (int i = 0; i < rows.length; i++) {
 String[] cols = rows[i].split(";");
 for (int j = 0; j < cols.length; j++) {
  matrix[i][j] = cols[j];
 }
}

上述代码查找了输入字符串中列数最多的那一行,记为maxColumns,然后按照此列数创建了二维数组。接着将每一行的元素赋值到二维数组中。

  
  

评论区