1. 使用String類的contains方法

String類的contains方法是最簡單直接的方式來判斷一個字符串是否包含指定的子字符串。

String str = "Hello, World!";
boolean containsSubstring = str.contains("Hello");

這段代碼將返回true,因為字符串"Hello, World!"中包含子字符串"Hello"。

2. 使用String類的indexOf方法

String類的indexOf方法可以用于檢索字符串中特定子字符串的位置。

String str = "Hello, World!";
int index = str.indexOf("World");
if (index != -1) {
    // 子字符串存在
}

如果子字符串存在,indexOf將返回其在原字符串中的起始索引;如果不存在,則返回-1。

3. 使用String類的matches方法

String類的matches方法可以使用正則表達式來判斷字符串是否匹配指定的模式。

String str = "Hello, World!";
boolean matches = str.matches(".*World.*");

這段代碼將返回true,因為字符串"Hello, World!"匹配了正則表達式".*World.*"。

4. 使用Pattern和Matcher類

Pattern和Matcher類提供了更強大的正則表達式功能,可以用于更復雜的字符串匹配。

String str = "Hello, World!";
Pattern pattern = Pattern.compile("World");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    // 子字符串存在
}

這段代碼同樣會檢測到子字符串"World"的存在。

5. 使用StringTokenizer類

StringTokenizer類可以用于將字符串分解為多個標記,進而判斷是否包含特定的子字符串。

String str = "Hello, World!";
StringTokenizer tokenizer = new StringTokenizer(str);
while (tokenizer.hasMoreTokens()) {
    if (tokenizer.nextToken().equals("World")) {
        // 子字符串存在
    }
}

6. 使用StringUtils類(Apache Commons Lang庫)

Apache Commons Lang庫中的StringUtils類提供了更多字符串操作的實用方法,包括判斷字符串包含關系。

String str = "Hello, World!";
boolean contains = StringUtils.contains(str, "World");

7. 使用Java 8的Stream API

Java 8引入的Stream API也可以用于字符串匹配。

String str = "Hello, World!";
boolean contains = Arrays.stream(str.split(" ")).anyMatch("World"::equals);

通過以上方法,可以靈活地判斷Java字符串中是否包含某個子字符串。選擇合適的方法取決于具體的需求和性能要求。

總結

在Java編程中,判斷字符串是否包含指定的子字符串是一項基本且常見的任務。本文介紹了多種實現這一目標的方法,包括使用String類的contains、indexOf方法,使用正則表達式,以及借助第三方庫如Apache Commons Lang等。選擇合適的方法取決于具體情況和性能要求。