如何在不使用libs的情况下使用数组填充java中的矩阵?
我有这个方法
public static String[][] transformArray(String msg, int slice) {
String matrix[][] = new String[slice][msg.length() / slice];
String[] msgArray= mensagem.split("");
for (int j = 0; j < matrix.length; j++) {
for (int h = 0; h < matrix[j].length; h++) {
for (int i = 0; i < matrix.length(); i++ ) {
matrix[j][h] = msgArray[i];
}
}
}
return matrix;
}
当我打电话时:
String anotherMatrix = transformArray("Java is cool", 2);
我的回报是这样的(我有一种打印矩阵的方法):
l l l l l l
l l l l l l
我做错了什么?
答案 0 :(得分:1)
我假设你想要这个
int i = 0;
for (int j = 0; j < matrix.length; j++) {
for (int h = 0; h < matrix[j].length; h++) {
matrix[j][h] = msgArray[i++];
}
}
你不应该使用3个循环。您的代码发生的情况是,对于每个j
和h
,矩阵条目将依次替换为每个字符,因此每个条目最终都来自l
cool
1}}。每个条目都不应该有一个循环,因为你只需要一个字符。
答案 1 :(得分:0)
为了访问2D数组中的每个元素,您必须像这样迭代:
for(int i=0 ; i<n ; i++) {
for(int j=0; j<n ; j++) {
myArray[i][j] = inc;
inc++;
}
}
您改为使用三个不正确的for-loops
。尝试调整代码以遵循此设置,这非常简单。编辑: pbabcdefp 已经为您完成了这项工作!