跳至頁尾內容
JAVA 幫助

如何在 Java 中使用 Substring

歡迎來到一個對初學者友好的 Java substring 方法指南。 作為一名 Java 開發者和教育者,我旨在幫助您掌握如何高效地處理 Java 中字串的一部分。 字串或字元序列是 Java 程式設計的基礎。 當處理空字串時,substring 方法的行為是獨特的。 如果原始字串是空的且未提供索引,則該方法返回空字串。 本指南將分解您需要知道的所有內容,以開始使用 Java 中的子字串,包括使用設計為 PDF 生成功能並操作的 IronPDF Java Library 的實用例子。

什麼是 Java 中的字串?

在深入研究子字串之前,了解在 Java 程式設計上下文中什麼是字串至關重要。 Java 中的字串是一個表示一系列字元的物件。 Java 中的 String 類提供了各種方法來操作此字元序列,例如將兩個字串合併、比較字串,或者像我們在這裡重點介紹的一樣,提取子字串。

子字串方法解析

Java 字串子字串方法是 Java 中 String 類的一部分。 它被設計用來從現有字串的一部分建立新字串。 Java 提供兩種主要方式來做到這一點:

  • public String substring(int beginIndex):該方法從beginIndex開始建立一個新字串,直到原始字串結束。 需要注意的是,Java 中的字串索引從 0 開始。
  • public String substring(int beginIndex, int endIndex):此版本從beginIndex開始建立一個新字串,直到(但不包括)endIndex

使用子字串建立新字串物件

當您使用子字串方法時,Java 不會修改您的原始字串。 相反,它建立一個新字串物件,其中包含指定索引範圍內的原始字串中的字元。

實際範例:提取子字串

讓我們用一個簡單的 Java 程式將理論付諸實踐:

public class SubstringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world!";
        // Extracting substring from index 7 to the end
        String world = greeting.substring(7);
        System.out.println(world); // Outputs "world!"

        // Extracting substring from index 0 to 4 (exclusive)
        String hello = greeting.substring(0, 5);
        System.out.println(hello); // Outputs "Hello"
    }
}
public class SubstringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world!";
        // Extracting substring from index 7 to the end
        String world = greeting.substring(7);
        System.out.println(world); // Outputs "world!"

        // Extracting substring from index 0 to 4 (exclusive)
        String hello = greeting.substring(0, 5);
        System.out.println(hello); // Outputs "Hello"
    }
}
JAVA

在此範例中,world 將包含從索引 7 開始到結尾的子字串,而 hello 將包含從索引 0 到 4 的子字串。這展示了如何使用子字串方法的兩種形式來提取字串的不同部分。

Java 字串子字串方法(開發者如何使用):圖 1 - 先前程式碼的控制台輸出

高級字串操作

除了提取簡單的子字串,子字串方法在更複雜的情境中也可以非常強大,例如比較字串的部分、檢查回文或在不同語境下處理字串。

比較字串區域

有時,您可能需要比較兩個字串的特定部分,而不是整個字串本身。 Java 的子字串方法在這種情況下非常有用。 這就是您可能這樣做的方法:

public class CompareRegionsDemo {
    public static void main(String[] args) {
        String str1 = "Hello, world!";
        String str2 = "Hello, Java!";

        // Extracting substrings to compare
        String subStr1 = str1.substring(7);
        String subStr2 = str2.substring(7);

        // Comparing extracted substrings
        if (subStr1.equals(subStr2)) {
            System.out.println("The substrings match.");
        } else {
            System.out.println("The substrings do not match.");
        }
    }
}
public class CompareRegionsDemo {
    public static void main(String[] args) {
        String str1 = "Hello, world!";
        String str2 = "Hello, Java!";

        // Extracting substrings to compare
        String subStr1 = str1.substring(7);
        String subStr2 = str2.substring(7);

        // Comparing extracted substrings
        if (subStr1.equals(subStr2)) {
            System.out.println("The substrings match.");
        } else {
            System.out.println("The substrings do not match.");
        }
    }
}
JAVA

這個程式從兩個不同的字串中提取子字串並比較它們。 這展示了如何專注於您感興趣的特定字串區域,而不是比較整個字串。

Java 字串子字串方法(開發者如何使用):圖 2 - 運行先前程式碼的控制台輸出

使用子字串本地化

在處理國際化時,您可能需要根據使用者的語境來呈現或處理字串。 這是如何根據預定格式使用子字串格式化字串的一個簡單範例。

public class LocalizationDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world! Bonjour, monde! Hola, mundo!";

        // Assuming we know the positions of each localized greeting
        String englishGreeting = greeting.substring(0, 13);
        String frenchGreeting = greeting.substring(15, 28);
        String spanishGreeting = greeting.substring(30);

        System.out.println(englishGreeting); // Outputs "Hello, world!"
        System.out.println(frenchGreeting);  // Outputs "Bonjour, monde!"
        System.out.println(spanishGreeting);  // Outputs "Hola, mundo!"
    }
}
public class LocalizationDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world! Bonjour, monde! Hola, mundo!";

        // Assuming we know the positions of each localized greeting
        String englishGreeting = greeting.substring(0, 13);
        String frenchGreeting = greeting.substring(15, 28);
        String spanishGreeting = greeting.substring(30);

        System.out.println(englishGreeting); // Outputs "Hello, world!"
        System.out.println(frenchGreeting);  // Outputs "Bonjour, monde!"
        System.out.println(spanishGreeting);  // Outputs "Hola, mundo!"
    }
}
JAVA

此範例展示了如何根據預定格式提取特定的問候語,並可以適應於根據使用者指定的語境選擇問候語。

Java 字串子字串方法(開發者如何使用):圖 3 - 先前程式碼範例的控制台輸出

檢查回文

回文是一個字元序列,例如單詞、短語或數字,無論正向還是反向閱讀都是相同的,不考慮空格、標點和大小寫。 這是您可能如何使用子字串方法來檢查給定字串是否為回文:

public class PalindromeCheck {
    public static void main(String[] args) {
        String line = "A man a plan a canal Panama";
        System.out.println("Is palindrome? " + checkPalindrome(line));
    }

    private static boolean checkPalindrome(String str) {
        // Removing all non-letter characters and converting to lowercase
        str = str.replaceAll("[^a-zA-Z]", "").toLowerCase();
        int length = str.length();

        // Checking if characters at each index are equal to their counterparts
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}
public class PalindromeCheck {
    public static void main(String[] args) {
        String line = "A man a plan a canal Panama";
        System.out.println("Is palindrome? " + checkPalindrome(line));
    }

    private static boolean checkPalindrome(String str) {
        // Removing all non-letter characters and converting to lowercase
        str = str.replaceAll("[^a-zA-Z]", "").toLowerCase();
        int length = str.length();

        // Checking if characters at each index are equal to their counterparts
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}
JAVA

此程式碼通過移除非字母字元並將其轉換為小寫來清理輸入字串。 然後,它檢查從頭開始的每個位置的字元是否與結束位置的相應字元匹配。

Java 字串子字串方法(開發者如何使用):圖 4 - 先前程式碼的控制台輸出

IronPDF for Java 簡介

Java 字串子字串方法(開發者如何使用):圖 5 - IronPDF for Java 網頁

發現 IronPDF Java 功能 - 一個強大的程式庫,旨在簡化在 Java 應用程式中建立、編輯和管理 PDF 文件的過程。 這個程式庫為開發者提供了廣泛的功能來操作 PDF 文件,包括從 HTML 生成PDF 文件、處理表單、新增圖像和文字,以及通過加密和權限保護文件。 其簡單的 API 和全面的文件使得初學者和經驗豐富的開發者都能夠將 PDF 功能整合到他們的 Java 專案中。

建立 PDF 文件

讓我們建立一個簡單的範例,展示將 IronPDF for Java 與 Java 的 substring 概念結合使用。 在此範例中,我們將從 HTML 字串生成一個 PDF 文件。 然後我們將從較大字串中提取的字串新增到 PDF 中,以演示 Java 的子字串功能的整合。

將 IronPDF for Java 新增到您的專案中

您可以將 IronPDF for Java 新增到您的 pom.xml 中。 您需要新增 IronPDF for Java 和 Slf4j 的依賴項。 這是您可以非常輕鬆做到的方法。

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.1.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.1.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
XML

但是,您可以從 Sonatype 儲存庫手動下載 IronPDF for Java

使用子字串方法生成 PDF

現在是時候在 App.java 文件中編寫程式碼了。讓我們建立一個簡單的 PDF 文件並在其上新增文字,展示如何在此過程中整合子字串方法:

import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.awt.print.PrinterException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("License Key");

        // Example longer string to demonstrate substring usage
        String longString = "IronPDF for Java simplifies PDF generation from HTML content.";
        // Extracting a substring
        String substring = longString.substring(0, 25); // "IronPDF for Java simplifies"

        // Crafting HTML content with the substring
        String htmlContent = "<h1>" + substring + "</h1>" +
                "<p>This PDF document demonstrates generating a PDF from HTML content, including dynamic text from Java strings.</p>";

        // Render HTML as a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        pdf.saveAs(Paths.get("f:\\IronPdf\\html.pdf"));
    }
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.awt.print.PrinterException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("License Key");

        // Example longer string to demonstrate substring usage
        String longString = "IronPDF for Java simplifies PDF generation from HTML content.";
        // Extracting a substring
        String substring = longString.substring(0, 25); // "IronPDF for Java simplifies"

        // Crafting HTML content with the substring
        String htmlContent = "<h1>" + substring + "</h1>" +
                "<p>This PDF document demonstrates generating a PDF from HTML content, including dynamic text from Java strings.</p>";

        // Render HTML as a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        pdf.saveAs(Paths.get("f:\\IronPdf\\html.pdf"));
    }
}
JAVA

從較長字串中提取子字串後,您可以將其無縫地整合至 PDF 文件中,確保在生成的 PDF 內容中有一個連貫的字串表示。 此程式碼片段展示了使用 IronPDF for Java 建立 PDF 文件的基礎,包括從 HTML 生成內容並結合 Java 的 substring 功能來處理和新增文字到 PDF 中。 運行此程式碼後,您會在指定的目錄中擁有一個名為 "html.pdf" 的 PDF。

輸出

這是由上述程式碼生成的 PDF:

Java 字串子字串方法(開發者如何使用):圖 6 - 先前程式碼生成的 PDF

這與我們在程式碼中定義的完全一致。 我們使用 Java 的 Substring 方法向 PDF 新增內容。 這是 IronPDF 和 Substring 方法的一個美妙組合。 您可以使用此組合來做很多事情。

總結

通過將這些Java IronPDF 功能與 Java 強大的字串操作功能(如子字串方法)結合,您可以建立複雜的 PDF 處理應用程式。 本指南提供了在 Java 中處理 PDF 的基礎知識,並展示了如何將子字串操作融入您的 PDF 專案中。 請嘗試這些範例並進一步探索以發掘 Java 中 PDF 操作的全部潛力。

IronPDF for Java 為開發人員提供免費試用以探索其功能。 IronPDF 的授權價格從 $999 起,提供全面的 PDF 生成解決方案以適用於 Java 專案。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話