String (chuỗi) Trong Java - KungFu Tech
Có thể bạn quan tâm
String là một chuỗi các ký tự kết hợp lại. Ví dụ "thaycacac" là một chuỗi gồm 9 ký tự 't', 'h', 'a', 'y', 'c', 'a', 'c', 'a', 'c' kết hợp lại.
String trong java là một object immutable, nghĩa là bạn không thể thay đổi giá trị của String khi nó đã được khởi tạo.
Khởi tạo String trong java
Trong java chúng ta có 2 cách để tạo một chuỗi
- Chuỗi ký tự
- Sử dụng từ khoá new
Tạo string bằng một chuỗi ký tự
Ví dụ: khởi tạo 2 chuỗi string1 và string2 với giá trị giống nhau
java Copy public class Main { public static void main(String[] args) { String string1 = "Thaycacac"; String string2 = "Thaycacac"; } }Sau khi khởi tạo string1 thì chuỗi "Thaycacac" sẽ được lưu vào vùng nhớ heap tại string pool. Đến khi khởi tạo khởi string2, việc đầu tiên là tìm kiếm trong string2, nếu đã có chuỗi tương tự thì sẽ không cần khởi tạo thêm mà gán thẳng cho string2, nếu không thì mới bắt đầu khởi tạo.
Mình sẽ giải thích đoạn code này sẽ diễn ra như sau:
- Bước 1: string1 = "Thaycacac" => JVM thấy rằng trong string pool chưa có object string nào có giá trị tương tự cho nên trình biên dịch sẽ tiến hành tạo ra object string (new String("Thaycacac")) và gán cho string1.
- Bước 2: string2 = "Thaycacac" => JVM thấy rằng trong string pool đã có sẵn object string có giá trị tương tự nên trình biên dịch sẽ gán thẳng cho string2 mà không khởi tạo nữa.
Khởi tạo string bằng từ khoá new
Đây là cách chính thống đây các bạn, sử dụng từ khoá new. Lưu ý nếu như chúng ta khởi tạo chuỗi bằng từ khoá new thì trình biên dịch sẽ không tiến hành kiểm tra trong string pool có tồn tại object nào có giá trị như vậy chưa mà nó sẽ tiến hành khởi tạo cả 2 object cho dù nó có cùng giá trị nhé.
java Copy public class Main { public static void main(String[] args) { String str1 = new String("thaycacac"); String str2 = new String("thaycacac"); } }Với đoạn code trên thì chúng ta sẽ được 2 object riêng biệt không liên quan gì nhau hết nha các bạn
String là object immutable
Như đã đề cập ở trên object immutable thì chúng ta sẽ không thể thay đổi khi nó đã được khỏi tạo. Chúng ta cùng xem ví dụ sau:
java Copy public class Main { public static void main(String[] args) { String str = "hello"; System.out.println(str); str = "hello thaycacac"; System.out.println(str); } }Kết quả
hello hello thaycacac
Sao nói rằng object string không thể thay đổi sau khi nó đã được khởi tạo thì đáng lẽ chúng ra phải nhận output là hello chứ nhỉ!
Thật ra là khi bạn gán str = "hello" trình biên dịch sẽ tiến hành khởi tạo object string và gán cho str. Đến khi bạn lại gán str = "hello thaycacac" như đúng bản chất nó không thay đổi giá trị object "hello" mà nó sẽ tạo tạo một object mới với giá trị chuỗi là "hello thaycacac" và gán lại cho str. Đó là lý do chúng ta có output như trên.
Các hàm thường sử dụng của String
int length(): Trả về số lượng ký tự trong chuỗi
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.charAt(10)); // return "."String substring(int i): Trả về chuỗi con bắt đầu tại vị trí i đến cuối chuỗi
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.substring(10)); // return "edu.vn"String substring(int begin, int end): Trả về chuỗi con từ vị trí begin đến end
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.substring(10, 14)); // return "edu"String concat(String s): Nối chuối s vào cuối chuỗi
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.indexOf("edu")); // return 11indexOf(String str, int fromIndex): Trả về vị trí xuất hiện đầu tiên của str bắt đầu từ vị trí fromIndex
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.indexOf("h", 5)); // return 9lastIndexOf(String str): Trả về vị trí xuất hiện cuối cùng của str
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.lastIndexOf("g")); // return 15lastIndexOf(String str, int fromIndex): Trả về vị trí cuối cùng xuất hiện của chuỗi str trong khoảng 0 đến fromIndex
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.lastIndexOf("h", 5)); // return 9boolean equals(Object obj): So sánh với string obj
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.equals("kungfutech.edu.vn")); // return trueboolean equalsIgnoreCase(String str): So sánh với chuỗi str, bỏ qua ký tự hoa thường
java Copy System.out.println(s.equalsIgnoreCase("kungfutech.EDU.VN")); // return true System.out.println(s.equalsIgnoreCase("Kungfutech.edu.vn")); // return trueString toLowerCase(): Chuyển tất cả các ký tự thành ký tự thường.
java Copy String s = "KUNGFUTECH.EDU.VN"; System.out.println(s.toLowerCase()); // return "kungfutech.edu.vn"String toUpperCase(): Chuyển tất cả các ký tự thành ký tự hoa
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.toUpperCase()); // return "KUNGFUTECH.EDU.VN"String trim(): Xoá các khoảng trắng ở đầu và cuối chuỗi
java Copy String s = " kungfutech.edu.vn "; System.out.println(s.trim()); // return "kungfutech.edu.vn"String replace(char old, char new): thay thế các ký tự old thành new
java Copy String s = "kungfutech.edu.vn"; System.out.println(s.replace("g", "*")); // return "kun*futech.edu.vn"Ở trên là các method chúng ta thường sử dụng trong String, ngoài ra nó còn có rất nhiều phương thức khác nữa nhé.
Từ khóa » Gán Chuỗi Trong Java
-
Java: Hàm Xử Lý Chuỗi (String) | V1Study
-
Chuỗi String Trong Java
-
String Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Chuỗi (String) Trong Java - Freetuts
-
Học Thao Tác Với String Trong Java Qua Các Ví Dụ
-
Java: Hàm Xử Lý Chuỗi( String) - Blog Của Hà Thanh Tâm
-
String Trong Java
-
String Trong Java Với Ví Dụ Cụ Thể - Deft Blog
-
Tìm Hiểu Về đối Tượng String Trong Java | TopDev
-
Chuỗi (String) Trong Java - Sửa Máy Nhanh
-
Xử Lý Chuỗi Trong Java - Lập Trình Từ Đầu
-
Chuỗi Trong Java - Java Strings - Lập Trình Từ Đầu
-
Bài 21: String Trong Java - Lập Trình Java Cơ Bản
-
[PDF] BÀI 4 MẢNG VÀ CHUỖI TRONG JAVA - Topica