String Trong Java
Có thể bạn quan tâm
[String(Chuỗi) trong Java- Xử lý chuỗi trong java]Chuỗi (String) trong Java cung cấp nhiều khái niệm đa dạng giúp bạn thao tác và xử lý với chuỗi như so sánh, cắt, nối, tìm độ dài, thay thế, tìm chuỗi con, …. Trong Java, về cơ bản chuỗi là một đối tượng mà biểu diễn dãy các giá trị char. Một mảng các ký tự làm việc khá giống như chuỗi trong Java. Ví dụ:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);Là tương tự như:
String s="vietjack";Lớp java.lang.String triển khai các Serializable, Comparable và CharSequence Interface. Chuỗi (String) trong Java là không thể thay đổi (immutable), ví dụ: nó không thể bị thay đổi nhưng sẽ có một instance được tạo. Tuy nhiên, nếu bạn muốn sử dụng các lớp mà có thể thay đổi, bạn có thể lựa chọn sử dụng các lớp StringBuffer và StringBuilder.
Chúng ta sẽ tìm hiểu về chuỗi dạng immutable sau. Ở chương này, chúng ta sẽ tìm hiểu chuỗi trong Java là gì và cách để tạo đối tượng String.
Chuỗi trong Java là gì
Nói chung, chuỗi là một dãy ký tự liên tục. Trong Java, String là một đối tượng mà biểu diễn một dãy ký tự liên tục. Lớp String được sử dụng để tạo đối tượng String.
Cách tạo đối tượng String trong Java
Có hai cách để tạo đối tượng String: bởi hằng chuỗi (string literal) và bởi từ khóa new.
Sử dụng String Literal
String Literal trong Java được tạo bởi sử dụng dấu trích dẫn kép. Ví dụ:
String s="xinchao";Ghi chú: Các đối tượng String được lưu trữ trong một khu vực bộ nhớ đặc biệt gọi là String Constant Pool.
Theo mặc định thì Java không lưu trữ tất cả đối tượng String vào String Pool. Thay vào đó, họ cung cấp một cách thức linh hoạt cho việc lưu trữ bất kỳ một đối tượng nào trong String Pool, sử dụng phương thức intern() để lưu trữ mọi object bất kỳ vào String pool. Khi sử dụng String literal thì mặc định nó sẽ gọi phương thức intern() để làm việc này giúp bạn. Đây chính là điểm khác biệt lớn nhất giữa String literal và sử dụng new.
Mỗi khi bạn tạo một hằng chuỗi, đầu tiên JVM kiểm tra Pool chứa các hằng chuỗi. Nếu chuỗi đã tồn tại trong Pool, một tham chiếu tới Pool được trả về. Nếu chuỗi không tồn tại trong Pool, một instance của chuỗi mới được tạo và được đặt trong Pool. Ví dụ:
String s1="xinchao"; String s2="xinchao";//se khong tao instance moi Quảng cáoTrong ví dụ trên chỉ có một đối tượng sẽ được tạo. Đầu tiên JVM sẽ không tìm thấy bất cứ đối tượng String nào với giá trị "xinchao" trong Pool, vì thế nó sẽ tạo một đối tượng mới. Sau đó, nó sẽ tìm thấy chuỗi với giá trị "xinchao" trong Pool, nó sẽ không tạo đối tượng mới nhưng sẽ trả về tham chiếu tới cùng instance (sự thể hiện) của đối tượng đó.
Tại sao Java sử dụng khái niệm String Literal?
Để làm cho Java hiệu quả hơn trong việc sử dụng bộ nhớ bởi vì không có đối tượng mới nào được tạo khi mà nếu nó đã tồn tại trong Pool.
Sử dụng từ khóa new
String s=new String("xinchao");//tao hai doi tuong va mot bien tham chieuTrong trường hợp này, JVM sẽ tạo một đối tượng mới như bình thường trong bộ nhớ Heap (không phải Pool) và hằng "xinchao" sẽ được đặt trong Pool. Biến sẽ tham chiếu tới đối tượng trong Heap (chứ không là Pool).
Ví dụ về String trong Java
public class StringExample{ public static void main(String args[]){ String s1="java";//tao string boi string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//chuyen doi mang ky tu thanh string String s3=new String("Vidu");//tao string boi tu khoa new System.out.println(s1); System.out.println(s2); System.out.println(s3); }} Quảng cáoTạo các String được định dạng trong Java
Bạn có các phương thức printf() và format() để in output với các số được định dạng. Lớp String có một phương thức lớp tương đương, là format(), mà trả về một đối tượng String chứ không là một đối tượng PrintStream.
Sử dụng phương thức static format() của đối tượng String cho phép bạn tạo một chuỗi đã được định dạng để bạn có thể tái sử dụng, trái ngược với lệnh in một lần. Ví dụ, thay vì:
System.out.printf("Gia tri cua bien float la " + "%f, trong khi gia tri cua bien integer " + "bien la %d, va chuoi la " + "is %s", floatVar, intVar, stringVar);Bạn có thể viết:
String fs; fs = String.format("Gia tri cua bien float la " + "%f, trong khi gia tri cua bien integer " + "bien la %d, va chuoi la " + "is %s", floatVar, intVar, stringVar); System.out.println(fs); 👉 Giải bài nhanh với AI Hay:Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:
Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59
Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2025). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.
Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com
Bài học Java phổ biến tại vietjack.com:
Nạp chồng phương thức (Overloading)
Constructor
ArrayList trong Java
Interface trong Java
Thread trong Java
247 bài tập Java
200 câu phỏng vấn Java
160 bài học ngữ pháp tiếng Anh hay nhất
155 bài học Java tiếng Việt hay nhất
100 bài học Android tiếng Việt hay nhất
247 bài học CSS tiếng Việt hay nhất
197 thẻ HTML cơ bản
297 bài học PHP
101 bài học C++ hay nhất
97 bài tập C++ có giải hay nhất
208 bài học Javascript có giải hay nhất
Từ khóa » Các Bài Tập Xử Lý Chuỗi Trong Java
-
Tổng Hợp Bài Tập String Trong Java - Có Lời Giải - Deft Blog
-
Bài Tập Xử Lý Chuỗi Trong Java Hay Nhất - TopLoigiai
-
Bài Tập Xử Lý Chuỗi Trong Java - Lập Trình Không Khó
-
Bài Tập Xử Lý Chuỗi Trong Java: Tìm Vị Trí Xuất Hiện Của Một Ký Tự Trong ...
-
Bài Tập Xử Lý Chuỗi Trong Java - Bác Sĩ Xanh
-
Bài Tập Xử Lý Chuỗi Trong Java - Trang Chia Sẻ Kiến Thức Cuộc ...
-
Các Phương Thức Xử Lý Chuỗi Trong Java
-
Java: Hàm Xử Lý Chuỗi (String) | V1Study
-
Bài Tập String Trong Java Có Lời Giải
-
Bài Tập Java Có Lời Giải - Học Lập Trình Java - Viettuts
-
Bài Tập Java - Đếm Số Từ Trong Một Chuỗi - VietTuts
-
Bài Tập Xử Lý Chuỗi Trong Java
-
Bài Tập Xử Lý Chuỗi Trong Java - 123doc