Chuyển mảng thành chuỗi trong Java | Laptrinhcanban.com

HOME › >>

Chuyển mảng thành chuỗi trong Java

Hướng dẫn cách chuyển mảng thành chuỗi trong Java. Bạn sẽ học được cách sử dụng các phương thức như Arrays.toString hoặc Arrays.deepToString để chuyển mảng thành chuỗi trong Java sau bài học này.

Chúng ta có 2 phương pháp chuyển mảng thành chuỗi trong Java như sau:

  • Phương thức Arrays.toString: Chuyển mảng 1 chiều thành chuỗi trong Java
  • Phương thức Arrays.deepToString: Chuyển mảng đa chiều thành chuỗi trong Java

Chuyển mảng 1 chiều thành chuỗi trong Java | Arrays.toString

Trong Java, nếu chúng ta tạo một mảng và gán nó cho một biến mảng, thì biến mảng sẽ chứa giá trị tham chiếu đến mảng. Do đó nếu bạn in biến mảng ra màn hình, thì không phải mảng, mà là một chuỗi ký tự đại diện cho giá trị tham chiếu sẽ được xuất ra màn hình.

Ví dụ:

int [] src = {32, 18, 22};

System.out.println (src); // [I @ 372f7a8d

Để có thể chuyển giá trị tham chiếu này về một chuỗi có dạng dễ hiểu hơn như [phần tử 1, phần tử 2, ..], khi đó chúng ta sẽ dùng tới phương thức Arrays.toString.

Một cách dễ hiểu thì Arrays.toString là một phương thức trong class Arrays, có tác dụng chuyển giá trị tham chiếu trong mảng 1 chiều thành chuỗi theo định dạng dễ hiểu hơn trong Java. Lưu ý là chúng ta dùng Arrays.toString với mảng 1 chiều. Đối với các mảng đa chiều, thay vì Arrays.toString chúng ta sẽ dùng đến phương thức Arrays.deepToString sẽ được Kiyoshi giới thiệu ở phần sau.

Để sử dụng được phương thức này thì chúng ta cần phải import class Arrays trước với lệnh sau:

import java.util.Arrays;

Sau đó chúng ta sử dụng Arrays.toString để chuyển mảng thành chuỗi trong Java với cú pháp như sau:

Arrays.toString(src);

Trong đó src là tên mảng cần chuyển sang dạng chuỗi.

Ví dụ cụ thể như sau:

import java.util.Arrays;

class Main{
public static void main(String[] args){
double[] src = {3, 22, 100};

System.out.println(src);
System.out.println(Arrays.toString(src));
}
}

Kết quả:

[D@3b22cdd0
[3.0, 22.0, 100.0]

Chuyển mảng đa chiều thành chuỗi trong Java | Arrays.toString

Đối với mảng đa chiều, nếu chúng ta sử dụng Arrays.toString thì kết quả trả về sẽ không phải là chuỗi với định dạng kiểu mảng dễ đọc, mà chính là giá trị tham chiếu tới từng mảng con là phần tử trong mảng đa chiều.

Ví dụ:

int[][] src = {{25, 18}, {12, 37}};

System.out.println(Arrays.toString(src));
//[[I@5fdef03a, [I@3b22cdd0]

Do vậy chúng ta không thể dùng Arrays.toString, mà thay vào đó là phương thức Arrays.deepToString để có thể chuyển mảng đa chiều thành chuỗi trong Java.

Một cách dễ hiểu thì Arrays.deepToString là một phương thức trong class Arrays, có tác dụng chuyển giá trị tham chiếu trong mảng đa chiều thành chuỗi theo định dạng dễ hiểu hơn trong Java. Lưu ý là chúng ta dùng Arrays.deepToString với mảng đa chiều. Đối với các mảng 1 chiều, thay vì Arrays.deepToString chúng ta sẽ dùng đến phương thức Arrays.ToString mà Kiyoshi đã giới thiệu ở phần trên.

Để sử dụng được phương thức này thì chúng ta cần phải import class Arrays trước với lệnh sau:

import java.util.Arrays;

Sau đó chúng ta sử dụng Arrays.deepToString để chuyển mảng thành chuỗi trong Java với cú pháp như sau:

Arrays.deepToString(src);

Trong đó src là tên mảng cần chuyển sang dạng chuỗi.

Ví dụ cụ thể, chúng ta dùng Arrays.deepToString để chuyển mảng 2 chiều thành chuỗi trong Java như sau:

import java.util.Arrays;

class Main{
public static void main(String[] args){
int[][] src = {{25, 18}, {12, 37}};

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

Kết quả:

[[I@5fdef03a
[[25, 18], [12, 37]]

Tương tự với các mảng đa chiều khác, ví dụ như mảng 3 chiều sau đây:

import java.util.Arrays;

class Main{
public static void main(String[] args){
int[][][] src = {
{{8, 4}, {7, 3}},
{{9, 1}, {5, 8}}
};

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

Kết quả:

[[[8, 4], [7, 3]], [[9, 1], [5, 8]]]

Cần lưu ý là chúng ta không thể dùng Arrays.deepToString với mảng 1 chiều, vì lỗi compile sẽ xảy ra:

double[] src = {3, 22, 100};
System.out.println(Arrays.deepToString(src));

>>> error: incompatible types: double[] cannot be converted to Object[]

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách chuyển mảng thành chuỗi trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/java/java-co-ban-cho-nguoi-moi-bat-dau/mang-trong-java/chuyen-mang-thanh-chuoi-trong-java/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.