string-concatentation-java

String Concatenation là một thao tác rất phổ biến trong lập trình. Trong hướng dẫn này, chúng ta sẽ tìm hiểu các cách khác nhau để nối các chuỗi trong Java.

LUYỆN THI CHỨNG CHỈ OCA

String Concatenation trong Java

Chúng ta nên tránh sử dụng toán tử “+” để nối chuỗi. Chúng ta nên sử dụng StringBuffer hoặc StringBuilder để nối chuỗi.

String Concatenation sử dụng toán tử +

String sử dụng nội bộ StringBuffer (cho đến Java 1.4) hoặc StringBuilder (Java 1.5 trở đi) cho các lệnh gọi toán tử String “+”.

Hãy viết một chương trình java nối chuỗi đơn giản để chứng minh điều này.

public class StringConcatenationExample { public static void main(String args[]){ String str = new String ("Journal "); str += "Dev!!"; } }
Code language: JavaScript (javascript)

Bây giờ chúng ta sẽ chỉnh sửa chương trình tương tự để sử dụng StringBuffer.

public class StringConcatenationExample { public static void main(String args[]){ StringBuffer str = new StringBuffer ("Journalbytecode"); str.append("Dev!!"); }
Code language: JavaScript (javascript)

Tôi đã giữ lại mã byte cho cả hai chương trình này, vì bạn có thể thấy sự khác biệt duy nhất giữa cả hai chương trình này là ở dòng số 6 và 7. Bây giờ chúng ta hãy kiểm tra mã byte.

Mã Byte nối chuỗi

˛∫æ2.com/journaldev/string/concatenation/StringConcatenationExamplejava/lang/Object<init>()VCode  LineNumberTableLocalVariableTablethisLcom/journaldev/string/concatenation/StringConcatenationExample;main([Ljava/lang/String;)Vjava/lang/String Journal  (Ljava/lang/String;)Vjava/lang/StringBuilder  valueOf&(Ljava/lang/Object;)Ljava/lang/String; Dev!! ! "#append-(Ljava/lang/String;)Ljava/lang/StringBuilder; % &'toString()Ljava/lang/String;args[Ljava/lang/String;strLjava/lang/String; SourceFileTTT.java!/*∑±   [ªY∑LªY+∏∑∂ ∂$L±   () *+,-
Code language: HTML, XML (xml)

StringBuffer nối mã byte

˛∫æ2#com/journaldev/string/concatenation/StringConcatenationExamplejava/lang/Object<init>()VCode  LineNumberTableLocalVariableTablethisLcom/journaldev/string/concatenation/StringConcatenationExample;main([Ljava/lang/String;)Vjava/lang/StringBufferJournal  (Ljava/lang/String;)VDev!!  append,(Ljava/lang/String;)Ljava/lang/StringBuffer;args[Ljava/lang/String;strLjava/lang/StringBuffer; SourceFileTTT.java!/*∑±   NªY∑L+∂W±     !"
Code language: HTML, XML (xml)

Từ mã byte, rõ ràng là String + đang sử dụng phương thức nối thêm StringBuilder để nối chuỗi.

Dưới đây là các bước liên quan đến việc nối chuỗi bằng cách sử dụng toán tử +.

  • Một đối tượng StringBuilder mới được tạo.
  • Chuỗi “Journal” được sao chép vào đối tượng StringBuilder mới được tạo.
  • Phương thức append() của StringBuilder được gọi để nối thêm “Dev !!” vào đối tượng StringBuilder.
  • Phương thức StringBuilder toString() được gọi để lấy đối tượng String.
  • Tham chiếu đối tượng String mới được gán cho str và trả về. Chuỗi cũ hơn “Journal” hiện có sẵn để thu gom rác.

Phương thức append() của StringBuilder và StringBuffer

Tốt hơn là sử dụng phương thức append() của StringBuilder và StringBuffer để nối nhiều chuỗi. Các lớp tiện ích này được cung cấp để giúp bạn trong các hoạt động chuỗi phổ biến.

  • Một đối tượng StringBuffer mới được tạo với giá trị “Journal”
  • Phương thức append() được gọi để nối thêm “Dev !!” đối tượng.
  • Phương thức StringBuffer toString() được gọi để lấy đối tượng String.

Kết luận

Nếu bạn phải nối một vài chuỗi, bạn có thể sử dụng toán tử + vì sẽ không có bất kỳ độ trễ hiệu suất có thể nhìn thấy nào. Tuy nhiên, nếu bạn đang nối nhiều chuỗi, hãy sử dụng phương thức append() của StringBuilder. Nếu bạn đang ở trong môi trường đa luồng, thì hãy sử dụng lớp StringBuffer.

Happy learning~!!~

HỌC JAVA CORE~


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published.

TÀI LIỆU DEV WORLD
Cẩm nang phát triển bền vững với nghề lập trình!