跳過到頁腳內容
JAVA 幫助

如何在 Java 中使用 Substring

歡迎來到使用 Java 子字串方法的初學者友好指南。 作為一名 Java 開發人員和教育者,我的目標是幫助您掌握如何高效地處理 Java 中的字串部分。 字串或字元序列是 Java 編程的基礎。 substring 方法在處理空字串時行為獨特。 如果原始字串為空且沒有提供索引,該方法將返回空字串。 本指南將分解您開始使用 Java 中的子字串所需的所有知識,包括設計用於生成和操作 PDF 的 IronPDF Java 庫 的實踐示例。

什麼是 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 - 前面代碼的控制台輸出

Java版IronPDF介紹

Java 子字串方法(對開發人員如何工作):圖 5 - IronPDF for Java 網頁

探索 IronPDF Java 特性 - 一個強大的庫,旨在簡化 Java 應用程序中創建、編輯和管理 PDF 文件的過程。 此庫為開發人員提供了一套功能齊全的功能來操作 PDF 文件,包括從 HTML 生成 PDF 文件、表單處理、添加圖像和文本以及使用加密和權限來保護文件。 其直觀的 API 和全面的文檔使初學者和經驗豐富的開發人員能夠輕鬆將 PDF 功能集成到其 Java 項目中。

創建 PDF 文件

讓我們創建一個簡單的示例,演示 IronPDF for Java 與 Java 的子字串概念的結合使用。 在此示例中,我們將從 HTML 字串生成 PDF 文件。 然後我們將使用更大字串的子字串將文本元素添加到 PDF 中,以展示 Java 的子字串功能與 PDF 的結合使用。

將 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 的子字串功能來操作和添加文本到 PDF。 運行此代碼後,您將在指定的目錄中擁有一個名為 "html.pdf" 的 PDF 文件。

輸出

以下是通過上述代碼生成的 PDF:

Java 子字串方法(對開發人員如何工作):圖 6 - 前面代碼的輸出 PDF

正如我們在代碼中所定義的那樣。 我們使用 Java 的子字串方法向 PDF 添加內容。 這是 IronPDF 與子字串方法的美妙結合。 通過使用這種組合,您可以完成很多事情。

結論

通過將這些 Java IronPDF 功能 與 Java 強大的字串操作功能(如子字串方法)集成,您可以創建複雜的 PDF 處理應用程序。 本指南提供了在 Java 中處理 PDF 的基礎理解,並展示了如何將子字串操作集成到您的 PDF 項目中。 試驗這些例子並進一步探索,以解鎖 Java 中 PDF 操作的全部潛力。

IronPDF for Java 為開發人員提供 免費試用 以探索其功能。 IronPDF 的許可證從 $799 開始,為 Java 項目提供全面的 PDF 生成解決方案。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。