de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Chip  Goon Lewin
Chip Goon Lewin
Question

Jawa - cara Terbaik untuk mencetak 2D array?

Aku bertanya-tanya apa cara terbaik untuk mencetak 2D array. Ini adalah beberapa kode yang saya miliki dan saya hanya bertanya-tanya jika ini adalah praktik yang baik atau tidak. Juga benar saya dalam kesalahan yang saya buat dalam kode ini jika anda menemukan apapun. Terima kasih!!!

int rows = 5;
int columns = 3;

int[][] array = new int[rows][columns];

for(int i = 0; i<rows; i++)
    for(int j = 0; j<columns; j++)
        array[i][j] = 0;

for(int i = 0; i<rows; i++)
{
    for(int j = 0; j<columns; j++)
    {
        System.out.print(array[i][j]);
    }
    System.out.println();
}
51 2013-10-29T01:46:44+00:00 10
Jim Garrison
Jim Garrison
Pertanyaan edit 29 Oktober 2013 в 1:49
Pemrograman
printing
arrays
java
 Prabhakaran
Prabhakaran
29 Oktober 2013 в 1:56
2013-10-29T01:56:56+00:00
Lebih
Sumber
Sunting
#22648795

Anda dapat mencetak dengan cara yang sederhana.

Gunakan di bawah ini untuk mencetak 2D array

int[][] array = new int[rows][columns];
System.out.println(Arrays.deepToString(array));

Gunakan di bawah ini untuk cetak array 1D

int[] array = new int[size];
System.out.println(Arrays.toString(array));
124
0
 snr
snr
8 Januari 2017 в 1:25
2017-01-08T13:25:34+00:00
Lebih
Sumber
Sunting
#22648798

Saya akan lebih suka pada umumnya foreach ketika saya don't perlu membuat operasi aritmatika dengan indeks mereka.

for (int[] x : array)
{
   for (int y : x)
   {
        System.out.print(y + " ");
   }
   System.out.println();
}
22
0
 matthewpliddy
matthewpliddy
2 September 2017 в 8:46
2017-09-02T20:46:01+00:00
Lebih
Sumber
Sunting
#22648801

Sederhana dan bersih untuk mencetak 2D array.

System.out.println(Arrays.deepToString(array).replace("], ", "]\n").replace("[[", "[").replace("]]", "]"));
18
0
 ashika
ashika
29 Oktober 2013 в 2:00
2013-10-29T02:00:14+00:00
Lebih
Sumber
Sunting
#22648796

Tidak ada yang salah dengan apa yang anda miliki. Double-loop bersarang untuk harus mudah dicerna oleh siapa pun yang membaca kode anda.

Konon, berikut rumusan yang lebih padat dan lebih idiomatik jawa. I'd sarankan mengaduk-aduk beberapa statis kelas utilitas seperti Array dan Koleksi lebih cepat daripada nanti. Ton boilerplate dapat dicukur dengan penggunaan yang efisien.

for (int[] row : array)
{
    Arrays.fill(row, 0);
    System.out.println(Arrays.toString(row));
}
8
0
 Plcode
Plcode
25 Mei 2017 в 3:43
2017-05-25T15:43:42+00:00
Lebih
Sumber
Sunting
#22648799

Yang's terbaik saya kira:

   for (int[] row : matrix){
    System.out.println(Arrays.toString(row));
   }
5
0
 suvojit_007
suvojit_007
29 Oktober 2018 в 9:33
2018-10-29T21:33:38+00:00
Lebih
Sumber
Sunting
#22648803

Dua kapal dengan baris baru:

for(int[] x: matrix)
            System.out.println(Arrays.toString(x));

Salah satu kapal tanpa baris baru:

System.out.println(Arrays.deepToString(matrix));
3
0
 Baseem
Baseem
8 Agustus 2017 в 3:06
2017-08-08T15:06:57+00:00
Lebih
Sumber
Sunting
#22648800
|1 2 3|
|4 5 6| 

Gunakan kode berikut untuk mencetak nilai-nilai.

System.out.println(Arrays.deepToString());

Output akan terlihat seperti ini (seluruh matriks dalam satu baris):

[[1,2,3],[4,5,6]]
Grzegorz G&#243;rkiewicz
Grzegorz Górkiewicz
Jawaban edit 8 Agustus 2017 в 5:49
2
0
Max  von Hippel
Max von Hippel
3 Maret 2016 в 6:06
2016-03-03T18:06:00+00:00
Lebih
Sumber
Sunting
#22648797

@Ashika's jawaban yang bekerja fantastis jika anda ingin (0,0) untuk diwakili di atas, sudut kiri, per normal CS konvensi. Namun jika anda lebih memilih untuk menggunakan normal matematika konvensi dan menempatkan (0,0) di pojok kiri bawah, anda bisa menggunakan ini:

LinkedList<String> printList = new LinkedList<String>();
for (char[] row: array) {
    printList.addFirst(Arrays.toString(row));;
}
while (!printList.isEmpty())
    System.out.println(printList.removeFirst());

Ini digunakan LIFO (Last In First Out) untuk membalikkan urutan pada saat cetak.

2
0
 ZhaoGang
ZhaoGang
11 Desember 2018 в 1:15
2018-12-11T01:15:04+00:00
Lebih
Sumber
Sunting
#22648804

Dari Oracle Resmi Jawa 8 Doc:

public static String deepToString(Object[] a)

Mengembalikan representasi string dari "dalam isi" dari array ditentukan. Jika array berisi array lain sebagai unsur-unsur, representasi string berisi konten mereka dan sebagainya. Metode ini ini dirancang untuk mengkonversi array multidimensi untuk string.

 ZhaoGang
ZhaoGang
Jawaban edit 8 Oktober 2019 в 2:31
1
0
 Nambi_0915
Nambi_0915
31 Agustus 2018 в 9:38
2018-08-31T09:38:46+00:00
Lebih
Sumber
Sunting
#22648802

Coba ini,

for (char[] temp : box) {
    System.err.println(Arrays.toString(temp).replaceAll(",", " ").replaceAll("\\[|\\]", ""));
}
Mohammad Usman
Mohammad Usman
Jawaban edit 3 September 2018 в 10:32
0
0
Related communities 3
Programmer JAVA indonesia
Programmer JAVA indonesia
1 119 pengguna
Buka telegram
jvmusergroup
jvmusergroup
326 pengguna
Bismillahirrohmanirohim. Perhatian! Grup ini merupakan ekspansi dari grup Forum Java Programmer Indonesia di Facebook. Silahkan berbagi pengalaman dan masalah seputar Java dan keluarganya. https://t.me/JVMIndonesia Admin : @hendisantika34
Buka telegram
Java Indonesia🇲🇨
Java Indonesia🇲🇨
144 pengguna
Programmer Java Indonesia. Grup ini digunakan untuk bertanya terkait materi belajar Java / fullstack Warning=> -dilarang promosi(izin adm -18+🔞 - berbicara sopan - no spam /boot Mohon ikut aturan grup belum di keluarkan
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Галина Утяшова
Terdaftar 20 jam yang lalu
2
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
3
Akshit Mehta
Terdaftar 6 hari yang lalu
4
me you
Terdaftar 1 minggu yang lalu
5
Никита иванов
Terdaftar 1 minggu yang lalu
DE
ES
FR
ID
JA
KO
PT
RU
TR
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi