[英]Appending a string into 2d Array Java
我有一個包含以下內容的字符串:
String text = "abcdefghijkl"
我想將它放在2d數組中,所以會有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
指令中獲得正確的char。
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位置。
只是錯誤的索引編制,否則您就很好:
String text = "abcdefghijkl";
int rows = 4;
int cols = 3;
char boxChar[][] = new char[rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
boxChar[i][j] = text.charAt((i * cols) + j);
}
}
//return boxChar[row][col];
System.out.println(boxChar[0]);
System.out.println(boxChar[1]);
System.out.println(boxChar[2]);
System.out.println(boxChar[3]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.