String Trong Java Với Ví Dụ Cụ Thể - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Khởi tạo String trong java
- 1.1 Tạo string bằng một chuỗi ký tự
- 1.2 Khởi tạo string bằng từ khoá new
- 2 String là object immutable
- 3 Các method thường sử dụng của String
- 4 Bài tập thực hành
String là một chuỗi các ký tự kết hợp lại. Ví dụ “Deft” là một chuỗi gồm 3 ký tự ‘D’, ‘e’, ‘f’, ‘t’ kết hợp lại.
String java trong java là một object immutable, nghĩa là bạn khônng 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ự
public class Main { public static void main(String[] args) { String str1 = "shareprogrammimg"; String str2 = "shareprogramming"; } }Mình đã khởi tạo 2 chuỗi str1 và str2 có chuỗi ký tự hoàn toàn giống, sử dụng phép gán để khởi tạo một chuỗi, điều này không giống như việc khởi tạo một object đâu nhé(khởi tạo một object ra sao thì mình sẽ nói ở phần sau nha, các bạn cố gắng theo dõi).
Sau khi khởi tạo str1 thì chuỗi “shareprogrammimg” sẽ được lưu vào vùng nhớ heap tại string pool. Đến khi khởi tạo khởi str2, việc đầu tiên là tìm kiếm trong string pool, 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 str2, nếu không thì mới bắt đầu khởi tạo.
Quay trở lại với đoạn code ở trên của chúng ta. Mình sẽ giải thích từng bước:
B1: str1 = “shareprogramming” => 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(“shareprogramming”) và gán cho str1.
B2: str2 = “shareprogramming” => 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 str2 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é.
public class Main { public static void main(String[] args) { String str1 = new String("shareprogrammimg"); String str2 = new String("shareprogrammimg"); } }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
Nảy giờ nói nhiều về object immutable không biết nó có ảnh hưởng gì khi chúng ta làm việc với String không nhỉ?
Như mình nêu ở 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 đoạn code sau
public class Main { public static void main(String[] args) { String str = "hello"; System.out.println(str); str = "hello shareprogramming"; System.out.println(str); } }Output:
hellohello shareprogramming
Ôi nhìn output sao mà kỳ quá vậy? sao mình nói 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 hello chứ nhỉ!
Um hử, như vậy nè, để mình nói cho nghe. 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 shareprogramming” 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 shareprogramming” và gán lại cho str. Đó là lý do chúng ta có output như trên.
Các method thường sử dụng của String
1, int length(): Trả về số lượng ký tự trong chuỗi
String s = "shareprogramming.net"; System.out.println(s.charAt(10)); // return "a"3, String substring(int i): Trả về chuỗi con bắt đầu tại vị trí i đến cuối chuỗi
String s = "shareprogramming.net"; System.out.println(s.substring(17)); // return "net"4, String substring(int begin, int end): Trả về chuỗi con từ vị trí begin đến end
String s = "shareprogramming.net"; System.out.println(s.substring(5, 16)); // return "programming"5, String concat(String s): Nối chuối s vào cuối chuỗi
String s = "shareprogramming.net"; System.out.println(s.indexOf("program")); // return 56, indexOf(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
String s = "shareprogramming.net"; System.out.println(s.indexOf("g", 10)); // return 157, lastIndexOf(String str): Trả về vị trí xuất hiện cuối cùng của str
String s = "shareprogramming.net"; System.out.println(s.lastIndexOf("g")); // return 158, lastIndexOf(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
String s = "shareprogramming.net"; System.out.println(s.lastIndexOf("g", 10)); // return 89, boolean equals(Object obj): So sánh với string obj
String s = "shareprogramming.net"; System.out.println(s.equals("shareprogramming.net")); // return true10, boolean equalsIgnoreCase(String str): So sánh với chuỗi str, bỏ qua ký tự hoa thường
System.out.println(s.equalsIgnoreCase("shareprogramming.net")); // return true System.out.println(s.equalsIgnoreCase("SHAREPROGRAMMING.NET")); // return true11, String toLowerCase(): Chuyển tất cả các ký tự thành ký tự thường.
String s = "ShareProgramming.net"; System.out.println(s.toLowerCase()); // return "shareprogramming.net"12, String toUpperCase(): Chuyển tất cả các ký tự thành ký tự hoa
String s = "ShareProgramming.net"; System.out.println(s.toUpperCase()); // return "SHAREPROGRAMMING.NET"13, String trim(): Xoá các khoảng trắng ở đầu và cuối chuỗi
String s = " ShareProgramming.net "; System.out.println(s.trim()); // return "ShareProgramming.net"14, String replace(char old, char new): thay thế các ký tự old thành new
String s = "ShareProgramming.net"; System.out.println(s.replace("g", "*")); // return "SharePro*rammin*.net"Ở 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 method khác nữa nhé.
Bài tập thực hành
1, Viết chương trình java tìm ký tự tại vị trí index, index được nhập vào từ bàn phím.
2, So sánh str1 với str2, nếu str1 lớn hơn str2 xuất ra “ok”, nhỏ hơn “ko”, bằng nhau thì xuất ra “equals”.
3, Tìm một chuỗi con trong chuỗi cha. Nếu có in ra true, ngược lại false.
4, Nối 2 chuỗi str1 và str2 sau đó in ra màn hình. str1, str2 nhập từ bàn phím
Bài tham khảo
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /* 1, Viết chương trình java tìm ký tự tại vị trí index, index được nhập vào từ bàn phím. */ String s = "shareprogramming"; System.out.print("Nhap vi tri can tim: "); int index = scanner.nextInt(); System.out.println(s.charAt(index)); /* 2, So sánh str1 với str2, nếu str1 lớn hơn str2 xuất ra "ok", nhỏ hơn "ko", bằng nhau thì xuất ra "equals". */ String str1 = "shareprogramming"; String str2 = "hello"; int check = str1.compareTo(str2); if (check == 1) { System.out.println("ok"); } else if (check == -1) { System.out.println("ko"); } else { System.out.println("equals"); } /* 3, Tìm một chuỗi con trong chuỗi cha. Nếu có in ra true, ngược lại false. */ System.out.println(str1.contains("programming")); /* 4, Nối 2 chuỗi str1 và str2 sau đó in ra màn hình. str1, str2 nhập từ bàn phím */ // Khi chuyen nextInt sang nextLine cac ban nho them dong ben duoi khong thoi no se bo qua buoc nhap chuoi 1 nhe scanner.nextLine(); System.out.print("Nhap chuoi str1: "); String s1 = scanner.nextLine(); System.out.print("Nhap chuoi str2: "); String s2 = scanner.nextLine(); System.out.println(s1.concat(s2)); } }Nguồn tham khảo
https://www.geeksforgeeks.org/strings-in-java/
https://www.edureka.co/blog/java-string/
Java String
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ụ
-
String (chuỗi) Trong Java - KungFu Tech
-
Java: Hàm Xử Lý Chuỗi( String) - Blog Của Hà Thanh Tâm
-
String Trong Java
-
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