Giới Thiệu
Khi làm việc với chuỗi trong Java, một trong những nhiệm vụ phổ biến nhất là kiểm tra xem một chuỗi có chứa một dãy ký tự cụ thể hay không. Java cung cấp một phương thức rất hữu ích cho việc này: contains().
Trong bài viết này, chúng ta sẽ khám phá phương thức contains() trong Java, cú pháp của nó, cách hoạt động, ví dụ mã, các trường hợp sử dụng phổ biến và những điều quan trọng cần lưu ý. Cuối cùng, bạn sẽ có thể tự tin sử dụng contains() trong các dự án của mình.
Phương Thức contains() Là Gì?
Phương thức contains() là một phương thức tích hợp của lớp String trong Java kiểm tra xem một dãy ký tự có tồn tại trong chuỗi hay không.
Giá Trị Trả Về
- true → nếu chuỗi chứa dãy ký tự được chỉ định.
- false → nếu không có.
Cú Pháp của contains()
java
public boolean contains(CharSequence sequence)
Tham Số:
- sequence → Dãy ký tự (như
String,StringBuilder, hoặcStringBuffer) mà bạn muốn tìm kiếm trong chuỗi chính.
Kiểu Trả Về:
- Trả về true nếu dãy ký tự tồn tại, nếu không trả về false.
Ví Dụ 1: Cách Sử Dụng Cơ Bản của contains()
java
public class ContainsExample {
public static void main(String[] args) {
String text = "Lập trình Java rất thú vị";
System.out.println(text.contains("Java")); // true
System.out.println(text.contains("Python")); // false
System.out.println(text.contains("thú vị")); // true
}
}
Kết Quả:
java
true
false
true
Ở đây, phương thức kiểm tra xem "Java", "Python", và "thú vị" có tồn tại trong chuỗi hay không.
Ví Dụ 2: Nhạy Cảm Về Chữ Hoa
Phương thức contains() là nhạy cảm với chữ hoa.
java
public class CaseSensitiveExample {
public static void main(String[] args) {
String text = "Xin chào Thế Giới";
System.out.println(text.contains("Xin")); // true
System.out.println(text.contains("xin")); // false
}
}
Kết Quả:
java
true
false
Nếu bạn muốn tìm kiếm không phân biệt chữ hoa chữ thường, bạn có thể chuyển đổi cả hai chuỗi thành chữ thường hoặc chữ hoa bằng cách sử dụng .toLowerCase() hoặc .toUpperCase().
java
text.toLowerCase().contains("xin".toLowerCase()); // true
Ví Dụ 3: Sử Dụng contains() Với Biến
java
public class VariableExample {
public static void main(String[] args) {
String mainString = "Chào mừng đến với các bài học Java";
String searchWord = "Java";
if (mainString.contains(searchWord)) {
System.out.println("Tìm thấy: " + searchWord);
} else {
System.out.println("Không tìm thấy");
}
}
}
Kết Quả:
java
Tìm thấy: Java
Các Trường Hợp Sử Dụng Phổ Biến của contains()
- Chức Năng Tìm Kiếm
- Kiểm tra xem đầu vào của người dùng có chứa một từ khóa nhất định hay không.
- Xác Thực
- Xác minh xem một địa chỉ email có chứa
"@"hay không. - Đảm bảo một URL chứa
"https".
- Xác minh xem một địa chỉ email có chứa
- Lọc Dữ Liệu
- Lọc các chuỗi trong danh sách dựa trên từ khóa.
Ví Dụ: Lọc Với contains()
java
import java.util.*;
public class FilterExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
for (String name : names) {
if (name.contains("a") || name.contains("A")) {
System.out.println(name);
}
}
}
}
Kết Quả:
java
Alice
Charlie
Những Hạn Chế của contains()
- Nhạy Cảm Về Chữ Hoa – Mặc định không bỏ qua sự khác biệt giữa chữ hoa và chữ thường.
- Khớp Dãy Ký Tự Chính Xác – Tìm kiếm các dãy ký tự chính xác, không phải là các mẫu (sử dụng regex với
matches()nếu bạn cần khớp mẫu). - NullPointerException – Nếu dãy ký tự nhập vào là
null, nó sẽ phát sinh một ngoại lệ.
Sự Khác Biệt Giữa contains() và Các Phương Thức Khác
| Phương Thức | Mô Tả | Ví Dụ |
|---|---|---|
contains() |
Kiểm tra xem một dãy có tồn tại | "Xin chào".contains("Xin") → true |
equals() |
So sánh toàn bộ chuỗi | "Xin chào".equals("xin chào") → false |
startsWith() |
Kiểm tra xem chuỗi bắt đầu bằng tiền tố | "Xin chào".startsWith("Xin") → true |
endsWith() |
Kiểm tra xem chuỗi kết thúc bằng hậu tố | "Xin chào".endsWith("o") → true |
matches() |
Sử dụng regex để khớp mẫu | "abc123".matches("[a-z]+\\d+") → true |
Thực Hành Tốt Nhất
- Sử dụng
contains()cho kiểm tra chuỗi con đơn giản. - Đối với kiểm tra không phân biệt, chuyển đổi cả hai chuỗi thành chữ thường.
- Đối với khớp mẫu, nên sử dụng regex với
matches()hoặcPattern. - Luôn kiểm tra giá trị
nulltrước khi gọicontains()để tránh ngoại lệ.
Kết Luận
Phương thức contains() trong Java là một công cụ mạnh mẽ và dễ sử dụng để kiểm tra xem một chuỗi có bao gồm một dãy ký tự cụ thể hay không. Nó được sử dụng rộng rãi trong tìm kiếm văn bản, lọc dữ liệu và các tác vụ xác thực.
Những điểm cần ghi nhớ:
- Phương thức này trả về true/false dựa trên sự hiện diện của chuỗi con.
- Nó là nhạy cảm với chữ hoa chữ thường.
- Hoạt động với các loại CharSequence (
String,StringBuilder,StringBuffer). - Thích hợp cho tìm kiếm đơn giản, nhưng không cho các mẫu phức tạp.
Bằng cách thành thạo phương thức contains(), bạn có thể thực hiện các thao tác chuỗi trong Java một cách hiệu quả và hiệu quả hơn.