跳過到頁腳內容
JAVA 幫助

如何在 Java 中使用 Substring

歡迎來到使用Java子字串方法的新手指南。 作為Java開發者和教育者,我的目標是幫助您掌握如何有效地處理Java中的字串部分。 字串或字符序列是Java編程的基礎。 substring方法在處理空字串時有其獨特的行為。 如果原始字串是空的且未提供索引,該方法將返回一個空字串。 本指南將分解您需要了解的所有內容,以便在Java中開始使用子字串,包括實際示例與IronPDF Java Library設計的PDF生成和操作。

什麼是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,但不包括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 Substring Method (How It Works For Developers): Figure 1 - Console output from the previous code

進階字串操作

除了提取簡單的子字串外,子字串方法在更複雜的場景中也很強大,如比較字串部分、檢查迴文或在不同語系中使用字串。

比較字串區域

有時候,你可能需要比較兩個字串的特定部分,而不是整個字串本身。 在這樣的情況下,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 Substring Method (How It Works For Developers): Figure 2 - Console output from running the previous code

使用字串作地區化

在處理國際化時,您可能需要根據用戶的語系不同地顯示或操作字符串。 這裡是如何根據預定義格式使用子字串格式化字串的簡單示例。

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 Substring Method (How It Works For Developers): Figure 3 - Console output from the previous code example

檢查回文

回文是指字符序列,如一個單詞、短語或數字,無論從前往後讀或者自後往前讀都是一樣的,不考慮空格、標點符號和大小寫。 以下是如何使用子字串方法來檢查給定字串是否為回文:

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 Substring Method (How It Works For Developers): Figure 4 - Console output from the previous code

IronPDF for Java簡介

Java Substring Method (How It Works For Developers): Figure 5 - IronPDF for Java webpage

發掘IronPDF Java功能 - 一個強大的程式庫,旨在簡化在Java應用程式中創建、編輯和管理PDF文件的過程。 該程式庫為開發者提供了一套廣泛的功能來操作PDF文件,包含從HTML生成PDF文件、處理表單、添加圖像和文字,以及使用加密和權限保護文件。 其簡單的API和全面的文檔讓初學者和有經驗的開發者都能輕鬆將PDF功能整合到他們的Java項目中。

創建PDF文件

讓我們建立一個簡單的示例,演示如何結合使用IronPDF for Java與Java的子字串概念。 在此示例中,我們將從一個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的子字串功能以操作和向PDF中添加文字。 運行此代碼後,您將在指定的目錄中有一個名為"html.pdf"的PDF。

輸出

這裡是由上述代碼生成的PDF:

Java Substring Method (How It Works For Developers): Figure 6 - Outputted PDF from the previous code

這正如我們在代碼中定義的那樣。 我們使用Java的子字串方法向PDF添加內容。 這是IronPDF與子字串方法的完美結合。 您可以通過這種組合實現許多功能。

結論

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

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

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

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

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

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me