Java String contains()
contains() 方法用來檢查字串是否包含指定的子字串。
語法
string.contains(CharSequence s)
s:要搜尋的子字串- 回傳:包含則回傳
true,否則回傳false
範例
String s = "Hello World";
System.out.println(s.contains("World")); // true
System.out.println(s.contains("Java")); // false
System.out.println(s.contains("hello")); // false(區分大小寫)
System.out.println(s.contains("")); // true(空字串)
忽略大小寫
String s = "Hello World";
String target = "hello";
// 方法一:轉換成相同大小寫
boolean contains = s.toLowerCase().contains(target.toLowerCase());
System.out.println(contains); // true
// 方法二:使用正規表達式
boolean contains2 = s.matches("(?i).*hello.*");
System.out.println(contains2); // true
startsWith()
檢查字串是否以指定字串開頭:
String s = "Hello World";
System.out.println(s.startsWith("Hello")); // true
System.out.println(s.startsWith("World")); // false
System.out.println(s.startsWith("")); // true
// 從指定位置開始檢查
System.out.println(s.startsWith("World", 6)); // true
endsWith()
檢查字串是否以指定字串結尾:
String s = "Hello World";
System.out.println(s.endsWith("World")); // true
System.out.println(s.endsWith("Hello")); // false
System.out.println(s.endsWith("")); // true
實際應用
過濾清單
String[] files = {"image.jpg", "document.pdf", "photo.png", "notes.txt"};
// 找出所有圖片檔
for (String file : files) {
if (file.endsWith(".jpg") || file.endsWith(".png")) {
System.out.println(file);
}
}
檢查 URL
String url = "https://www.example.com/page";
if (url.startsWith("https://")) {
System.out.println("安全連線");
}
if (url.contains("example.com")) {
System.out.println("來自 example.com");
}
檢查 Email
String email = "user@example.com";
if (email.contains("@") && email.endsWith(".com")) {
System.out.println("可能是有效的 email");
}
簡單的搜尋功能
String[] articles = {
"Java 入門教學",
"Python 基礎語法",
"Java 物件導向",
"JavaScript 教學"
};
String keyword = "Java";
System.out.println("搜尋結果:");
for (String article : articles) {
if (article.contains(keyword)) {
System.out.println("- " + article);
}
}
輸出:
搜尋結果:
- Java 入門教學
- Java 物件導向
- JavaScript 教學
contains vs indexOf
contains() 內部使用 indexOf() 實作:
String s = "Hello World";
// 兩種方式結果相同
boolean result1 = s.contains("World");
boolean result2 = s.indexOf("World") != -1;
// contains() 更直觀易讀
if (s.contains("World")) {
// ...
}