我正在尝试将字符串转换为4x4大小的矩阵。矩阵应包含与字符串相同的元素。 例如。
String="1234567890111213141516";
我需要将它转换为java中的4x4矩阵。
a[0][0]=1;
a[0][1]=2;
等等。 任何人都可以向我推荐相同的代码吗?
答案 0 :(得分:1)
这是一个提示:
a[i][j] = Integer.valueOf(str.charAt(4 * i + j));
弄清楚如何使用它来填充整个矩阵留给读者练习。
P.S。这将适用于标题中包含16个字符的abcdefghijklmnop
字符串;如果字符串更长,如问题所示,没有明确的方法将其解析为4x4矩阵。
P.P.S。如果你需要做的就是将元素设置为从1到16的连续数字,那么根本不需要字符串。
答案 1 :(得分:0)
确实你的问题是一个简单的问题,所以我回答你的问题还有一些额外的观点,我认为这些观点比答案本身更有帮助:
首先,这是代码:
int N = 4;
String delim = ",";
String s = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";
String[] c = s.split(delim);
int[][] mat = new int[4][4];
int l = 0;
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++,l++)
mat[i][j] = Integer.valueOf(c[l]);
注意:
请
1 - 不是一个简单的问题,真的很难!
如果它是一个hw,你可以说服导师定义用&#34;,&#34;之类的东西定义的字符串。 (如果他/她坚持)或其他什么,如果这是一个真实的项目说服顾客,你不想折磨自己!
String s = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";
2 - 你说你想把字符串分成4 x 4矩阵,如果你想要5x5矩阵怎么办?因此,利用常量,对分隔符
也是如此int N = 4;
String delim = ",";
希望这些帮助。
答案 2 :(得分:0)
你应该在你的字符串中运行两个for循环并填充矩阵。 (这也可以用一个数组完成,但让我们保持简单。)
String str ="1234567890111213141516";
final int rowSize = 4;
final int columnSize = 4;
String[][] a = new String[rowSize][columnSize];
// iterate
for (int row = 0; row < rowSize; row++) {
for (int column = 0; column < columnSize; column++) {
a[row][column] = String.valueOf(str.charAt(rowSize * row + column));
}
}
// test
for (int row = 0; row < rowSize; row++) {
for (int column = 0; column < columnSize; column++) {
System.out.print(a[row][column] + " ");
}
System.out.println();
}
答案 3 :(得分:0)
要阅读String s = "1234567890abcdefghij"
,您可以添加以下代码段:
char[][] a = new char[4][4];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = s.charAt(4 * i + j);
}
}
这对你有所帮助。这仅适用于一位数字符。