我有一个包含以下内容的字符串:
String text = "abcdefghijkl"
我想把它放在一个二维数组中,所以会有 4 行 3
这是目前我所拥有的,但它无法正常工作:
char boxChar[][] = new char[4][3];
int j,i;
for (i = 0; i<4; i++)
{
for (j=0; j<3; j++)
{
boxChar[i][j] = text.charAt((i+1)*(j));
}
}
return boxChar[row][col];
看起来你把索引搞混了。我在您的原始代码中添加了一些打印语句,并进行了修改以在您的charAt
指令中获得正确的字符。
String text = "abcdefghijkl";
char boxChar[][] = new char[4][3];
int j,i;
for (i = 0; i<4; i++)
{
for (j=0; j<3; j++)
{
boxChar[i][j] = text.charAt(i*3+j);
System.out.print(boxChar[i][j]);
}
System.out.println();
}
有时,如果它不符合您的预期,将其记在一张纸上会很有帮助。
使用您的输入字符串,一维数组上的位置是
a b c d e f g h i j k l
0 1 2 3 4 5 6 7 8 9 10 11
当您循环获取框数组(矩阵)时,您的外循环表明您需要四行三列,换句话说
a b c
d e f
g h i
j k l
所以对于第一个元素,a
,它的位置是(0,0)
,b
是在(0,1)
等等。您charAt(position)
必须将 2d 位置映射到相应的 1d 位置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句