[tablice] chyba petla zla

0

Tablice wyswietlam na jTekstArea. Jest ona 2 wymiarowa dlatego chce zeby co 10 int(tab[i][10]) w tablicy przeskakiwala mi o linijke nizej (\n). Jak to zrobic nie potrafie;/.
Kawałek kodu

tab = new int[10][10];

    for(int i = 0; i < 10; i++){
            tab[i][0] = i+1;
            tab[0][i] = i+1;
        }

        for(int i = 1; i < 10; i++){
            for(int j = 1; j < 10; j++){
                tab[i][j] = (i+1)*(j+1);
            }
        }

//tu wyswietla
for(int i = 0; i < 10; i++){

            for(int j = 0; j < 10 ; j++){

                
                     
               

                if(tab[i][j] < 10){

                     wys= tab[i][j] + "  ";
                     jTextArea1.setText(text+wys.toString());
                     text=jTextArea1.getText();
                     
                }
                else if(tab[i][j] < 101){
                     wys= tab[i][j] + " ";
                     jTextArea1.setText(text+wys.toString());
                     text=jTextArea1.getText();

                    }
            
                
            }
        }
0

jeżeli ci chodzi o nieużywanie ostatniej kolumny to można to zrobić w taki sposób :

         int[][] tab1 = new int[3][3];
        int[][] tab2 = new int[5][2];
        int[] tab3 = new int[9];
        int m = 1;

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                tab1[i][j] = m;
                m++;
            }
        }

        int h = 0;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                tab3[h] = tab1[i][j];
                h++;
            }
        }
        h = 0;
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 2; j++) {
                if (h < tab3.length) {
                    tab2[i][j] = tab3[h];
                } else {
                    tab2[i][j] = 0;
                }
                h++;
            }

        }
        System.out.println(Arrays.deepToString(tab1));
        System.out.println(Arrays.deepToString(tab2));

pierwszy for wpisuje jakieś liczby
drugi spisuje wiersz po wierszu do tablicy jednowymiarowej
trzeci zapisuje do tablicy a gdy natrafi ostatnią kolumnę wpisuje wartość zero

1

Po pierwsze, lepiej byłoby najpierw w tych pętlach dopisywać do StringBuildera, a dopiero na końcu ustawić tekst pola. Co do problemu, po prostu dopisz '\n' na końcu zewnętrznej pętli. Poza tym, liczbę spacji można kontrolować String.formatem.

StringBuilder builder = new StringBuilder();
for (int[] i : tab) {
    for (int j : i) {
        builder.append(String.format("%4d", j));
    }
    builder.append('\n');
}
jTextArea1.setText(builder.toString());
0

Próbowałem wpisywac \n ale nie wychodzi moglbys pokazac dokladnie w ktorym miejscy to wstawic;/

0

sory za posta pod postem ;/
Nie wiem czy do konca wiecie o co chodzi np. Tablica tab[3][3] wyswietla sie tak jak robie w ten sposob:0 1 2 3 4 5 6 7 a chce tak:
0 1 2
3 4 5
6 7 8
i chodzi ze to jest w JTextArea wyswietlane w konsoli bym umial tak zrobic

1

Wtf? Przecież @iooi zamieścił kod.

0

Dobra sorki poje...... mi sie ;/
wszystko gra teraz
dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1