簡體   English   中英

將字符串追加到2d Array Java中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM