gpt4 book ai didi

java - 如何将字符串转换为二维整数数组?

转载 作者:行者123 更新时间:2023-11-30 01:44:04 24 4
gpt4 key购买 nike

目前我有一个名为 x字符串,它显示以下内容

100
000
000

如何将其转换为名为 board 的 nxn、int[][] 数组?数组内容应该看起来像上面打印的那样。但是,必须根据字符串的行/列来初始化数组。在上面的示例中,它应该是一个 3x3 数组。

<小时/>

我不知道如何开始。我遇到的第一个问题是迭代字符串并计算字符串中有多少“行”/“列”,

除了按正确的顺序书写内容之外。这是我到目前为止所做的尝试...

for (int i = 0; i < x.length(); i++)
{
char c = x.charAt(i);
board[i][] = c;
}

最佳答案

我假设您存储在Java中的字符串看起来像String str = "100\r\n000\r\n000";,那么您可以将其转换为二维数组,如下所示:

代码片段

String str = "100\r\n000\r\n000";
System.out.println(str);

String[] str1dArray = str.split("\r\n");
String[][] str2dArray = new String[str1dArray.length][str1dArray[0].length()];
for (int i = 0; i < str1dArray.length; i++) {
str2dArray[i] = str1dArray[i].split("");

System.out.println(Arrays.toString(str2dArray[i]));
}

控制台输出

100
000
000
[1, 0, 0]
[0, 0, 0]
[0, 0, 0]

已更新

以下代码片段展示了如何使用 Lambda 表达式将字符串转换为二维整数数组(自 Java 8 起)。

int[][] str2dArray = new int[str1dArray.length][str1dArray[0].length()];
for (int i = 0; i < str1dArray.length; i++) {
str2dArray[i] = Arrays.stream(str1dArray[i].split("")).mapToInt(Integer::parseInt).toArray();

// This also works without using Lambda expression
/*
for (int j = 0; j < str1dArray[i].length(); j++) {
str2dArray[i][j] = Integer.parseInt(String.valueOf(str1dArray[i].charAt(j)));
}
*/
System.out.println(Arrays.toString(str2dArray[i]));
}

关于java - 如何将字符串转换为二维整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58828535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com