Друк з 2d элементаў масіва ў Java

Я спрабую надрукаваць элементы ў 2d масіў, але не магу адфарматаваць яго. У любы час я спрабую фарматаваць яго, я атрымліваю паведамленне пра памылку

    String [][] plants = new String[2][2];
    plants[0][0] = "Rose";
    plants[0][1] = "Red";
    plants[1][0] = "Snowdrop";
    plants[1][1] = "White";

    //String plant;
    //String color;
    for (int i = 0; i<2; i++){
    for (int j = 0; j<2; j++){

        //plant = Arrays.toString(plants[i]);
        //color = Arrays.deepToString(plants[j]);
        //System.out.println(plant + " " + color);
        System.out.println(plants[i][j]);

    }
    }

Тое, што я да гэтага часу друкуе кожны элемент на асобным радку, але я хачу, каб надрукаваць як:

Rose Red

пралеска белы

Я паспрабаваў метады закаментаваўшы, але яны не будуць працаваць правільна небудзь.

Любыя прапановы? дзякуй

1
Калі ласка, скажыце нам, што памылка
дададзена аўтар OmniOwl, крыніца
У мяне ёсць ідэя. Што рабіць, калі НІХТО сцягі любых дублюючых адказы, таму што мы напісалі зусім у той жа час і аўтар задае пытанне будзе рабіць нам ласку upvoting іх? : D #myRepNeedsToGrow
дададзена аўтар Ms. Nobody, крыніца

8 адказы

In the inner loop do System.out.print(plants[i][j] + " ");

In the outer loop do System.out.println();

4
дададзена
Гэта працуе, дзякуй, ацаніць усе адказы.
дададзена аўтар Rolo Susie, крыніца

Ваша для завесы павінна выглядаць наступным чынам:

for(int i = 0; i < plants.length; i++)
{
    for(int j = 0; j < plants[i].length; j++)
    {
        System.out.print(plants[i][j]);
        if(j < plants[i].length - 1) System.out.print(" ");
    }
    System.out.println();
}
3
дададзена
Працуе для любой радкі [] []. Але я б надрукаваць «\ т» замест «» паміж элементамі. Гэта робіць значна больш прыемна фарматаванне, асабліва калі ваш String [] [] можа ўтрымліваць пустыя радкі.
дададзена аўтар Kuchi, крыніца

Паспрабуйце гэта:

 for (int i = 0; i<2; i++){  

        System.out.println(plants[i][0] + " " + plants[i][1]);

    }
1
дададзена

Вам патрэбен толькі адзін цыкл:

for (int i = 0; i<2; i++)
{
    System.out.println(plants[i][0] + ' ' + plants[i][1]);
}
1
дададзена
Так String [] [] расліны = новы String [2] [2];
дададзена аўтар Djon, крыніца
Улічваючы пытанне, што АП не можа хацець нешта занадта складанае, каб пачаць з таго, што гэта была мая ідэя.
дададзена аўтар Djon, крыніца
здаецца даволі статычным
дададзена аўтар Marc, крыніца
не можа з гэтым паспрачацца;)
дададзена аўтар Marc, крыніца
for (int i = 0; i<2; i++){
    System.out.println(plants[i][0] + " " + plants[i][1]);
}
1
дададзена
Эй Сайман мне трэба прадстаўнік больш, чым вы: '(: D: | Любы hi5 для такіх жа адказу, ZZZ: D
дададзена аўтар Ms. Nobody, крыніца
На шчасце, мы абодва былі upvoted :)
дададзена аўтар Simon, крыніца
for (int i = 0; i<2; i++){
    for (int j = 0; j<2; j++){

        System.out.print(plants[i][j]);

    }
     System.out.println();
}

Аднак вы лепш выкарыстоўваць для кожнага перабраць масіў.

1
дададзена

Асноўная праблема заключаецца з кодам <> System.out.println (расліны [I] [J]);
Пасля друку запісы з "Rose» ён аўтаматычна пяройдзе да наступнай радку ....
Вы можаце выкарыстоўваць просты Друк ва ўнутраным блоку замест Println , які будзе трымаць курсор у той жа радку, замест таго, каб ісці да наступнай лініі ...

for(int i=0;i<2;i++)
{
    for(int j=0;j<2;j++)
    { 
        System.out.print(plants[i][j]);    
    }  
    System.out.println();  
}
1
дададзена
for (int i = 0; i<2; i++) {
    System.out.println(plants[i][0] + " " + plants[i][1]);
}
0
дададзена