跳過到頁腳內容
.NET幫助

C# 字串分割(開發者的工作原理)

字串操作是 C# 程式設計的基本範疇。 無論是格式化輸出、解析輸入或處理文字資料,有效處理字串的能力都是至關重要的。 在各種字串操作技術中,最通用且最常使用的是 String.Split 方法。

String.Split 方法可用於各種形式,包括分割以指定字串或單一字元定界的字串。 它可讓您將較大的字串分解為較小的子串,使處理和分析文字資料更加容易。 無論您是處理簡單的逗號分隔清單或解析複雜的資料格式,瞭解如何使用 String.Split 方法都是關鍵。

對於初學者而言,學習使用 String.Split 方法分割字串是一項基本技能。 它不僅有助於理解基於字串的陣列和陣列元素的基礎知識,還為更進階的字串操作任務奠定了基礎。 在本教程中,我們將探討如何有效地使用 String.Split 方法,從基本概念開始,並邁向更複雜的應用程式。

瞭解 String.Split 方法。

什麼是 String.Split 方法?

C# 中的 String.Split 方法是用來將字串分割成子字串陣列的基本函式。 當您需要根據特定的字元或字串(稱為分隔符)分割字串時,它尤其有用。 該方法會返回一個包含每個子串的陣列。

String.Split 的基本語法

String.Split 方法可以各種形式使用,但其最基本的形式是傳入單一字元或字串作為分隔符。 下面是一個簡單的例子:

string inputString = "apple,banana,cherry";
string[] fruits = inputString.Split(',');
string inputString = "apple,banana,cherry";
string[] fruits = inputString.Split(',');
Dim inputString As String = "apple,banana,cherry"
Dim fruits() As String = inputString.Split(","c)
$vbLabelText   $csharpLabel

在這個範例中,inputString 被分割成一個名為 fruits 的陣列,每個元素代表一個以逗號分隔的子串。

瞭解回傳的字串陣列

當您使用 String.Split 方法時,它會返回一個字串陣列 (string[])。 此陣列的每個元素代表原始字串的子串,該子串是根據所提供的分隔符分割的。

// Continuing from the previous example
// fruits[0] = "apple"
// fruits[1] = "banana"
// fruits[2] = "cherry"
// Continuing from the previous example
// fruits[0] = "apple"
// fruits[1] = "banana"
// fruits[2] = "cherry"
' Continuing from the previous example
' fruits[0] = "apple"
' fruits[1] = "banana"
' fruits[2] = "cherry"
$vbLabelText   $csharpLabel

在這個陣列中,fruits[0] 包含"apple",fruits[1] 包含"banana",如此類推。 值得注意的是,在進行字串分割作業後,原始字串仍保持不變。

處理空陣列元素

有時候,翻譯結果可能會包含空字串,尤其是當有連續的分隔符或分隔符出現在字串的開頭或結尾時。 瞭解如何處理這些空陣列元素對於精確的資料處理至關重要。

使用單一分隔符分割字串

使用單字元分隔符分割

Split 方法最常見的用途之一是使用單一字元作為分隔符來分割輸入字串。 這對於解析資料特別有用,因為在這些資料中,每個資訊之間都有特定的符號(如逗號或空格)分隔。

string line = "hello world";
string[] words = line.Split(' ');
string line = "hello world";
string[] words = line.Split(' ');
Dim line As String = "hello world"
Dim words() As String = line.Split(" "c)
$vbLabelText   $csharpLabel

在這個範例中,字串 line 使用空格符號作為分隔符,分割成兩個字詞 "hello" 和 "world"。

處理空的子字串

使用單字元定界符時,您可能會在結果陣列中遇到空子串,尤其是當該定界符重複出現或出現在字串的開頭或結尾時。

舉例來說

string value = "one,,three";
string[] parts = value.Split(',');
string value = "one,,three";
string[] parts = value.Split(',');
Dim value As String = "one,,three"
Dim parts() As String = value.Split(","c)
$vbLabelText   $csharpLabel

此代碼將產生一個包含三個元素的陣列:["one", "", "three"]. 中間的空字串是由連續的逗號造成的。

使用 String.Split 根據分隔符分隔字串。

String.Split 方法擅長處理需要根據簡單的分隔符來分隔字串的情況。 這是一種直接將字串分割成可管理部分的方法,使其成為 C# 中字串操作的必要工具。

使用多重分隔符

多字元進階分割

C# 中的 String.Split 方法並不限於單一的分隔符; 它也可以處理多重分隔符。 此功能在處理使用不同類型分隔符的字串時特別有用。

舉例來說,如果有一個字串以逗號、分號和空格分隔,您可以使用這三個字元做為分隔符來分割這個字串:

string complexData = "apple, banana; cherry orange";
char[] delimiters = new char[] { ',', ';', ' ' };
string[] fruits = complexData.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
string complexData = "apple, banana; cherry orange";
char[] delimiters = new char[] { ',', ';', ' ' };
string[] fruits = complexData.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
Dim complexData As String = "apple, banana; cherry orange"
Dim delimiters() As Char = { ","c, ";"c, " "c }
Dim fruits() As String = complexData.Split(delimiters, StringSplitOptions.RemoveEmptyEntries)
$vbLabelText   $csharpLabel

在此程式碼片段中,complexData 被分割成一個 fruits 的陣列,並使用逗號、分號和空格作為分隔符。 StringSplitOptions.RemoveEmptyEntries選項用來移除因連續定界符而產生的任何空陣列元素。

處理分割字串中的分隔符號

使用多重分隔符時,必須考慮這些字元會如何影響分割過程。 String.Split 方法會獨立處理分隔符陣列中的每個字元。

根據各種分隔符號分割字串

這種靈活性允許更複雜的字串分割情境。 您可以使用分隔符數組來精確指定您想要的字串分割方式,以容納字串中的各種格式和結構。

使用多重定界符分割字串的實用範例

考慮一種情況,您要處理的字串包含不同類型的資料,並以不同的字元分隔:

string mixedData = "Name: John; Age: 30, Location: USA";
char[] mixedDelimiters = new char[] { ':', ';', ',', ' ' };
string[] dataElements = mixedData.Split(mixedDelimiters, StringSplitOptions.RemoveEmptyEntries);
string mixedData = "Name: John; Age: 30, Location: USA";
char[] mixedDelimiters = new char[] { ':', ';', ',', ' ' };
string[] dataElements = mixedData.Split(mixedDelimiters, StringSplitOptions.RemoveEmptyEntries);
Dim mixedData As String = "Name: John; Age: 30, Location: USA"
Dim mixedDelimiters() As Char = { ":"c, ";"c, ","c, " "c }
Dim dataElements() As String = mixedData.Split(mixedDelimiters, StringSplitOptions.RemoveEmptyEntries)
$vbLabelText   $csharpLabel

在這個範例中,mixedData 被有效地分割成有意義的部分,例如 "Name""John""Age""30" 等,並使用冒號、分號、逗號和空格的組合作為分隔符。

String.Split 與 IronPDF 整合。

C# String Split (How it Works For Developers):圖 1 - IronPDF for .NET:C# PDF Library

來自 Iron Software 的 IronPDF 是用 C# 處理 PDF 的全面函式庫。 它提供的功能包括建立、編輯和處理 PDF 文件。 String.Split 方法的一個有趣應用是使用 IronPDF 處理從 PDF 中提取的文字資料。 此整合體現了字串操作技術在處理真實世界資料時的重要性。

IronPdf 的核心功能是其HTML轉PDF功能,可確保佈局和樣式保持不變。 它可將網頁內容轉換成 PDF,適用於報告、發票和文件。 您可以輕鬆地將 HTML 檔案、URL 和 HTML 字串轉換為 PDF。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

範例情境:擷取和處理 PDF 內容

想像您有一份 PDF 文件,其中包含一張項目清單,每個項目都以逗號或分號分隔。 使用 IronPDF,您可以 從 PDF 中萃取這些文字資料,然後運用 String.Split 方法來解析和處理這些資訊。

using IronPdf;
using IronSoftware.Drawing;

class ProcessPdf
{
    static void Main()
    {
        // Load the PDF document
        var pdf = PdfDocument.FromFile("List.pdf");
        // Extract text from the PDF using IronPDF
        string pdfText = pdf.ExtractAllText();
        // Define delimiters for splitting text
        char[] delimiters = new char[] { ',', ';' };
        // Split the extracted text using delimiters
        string[] items = pdfText.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
        // Iterate through the items array and print each element
        foreach (var item in items)
        {
            Console.WriteLine(item.Trim()); // Trim to remove any leading or trailing whitespace
        }
    }
}
using IronPdf;
using IronSoftware.Drawing;

class ProcessPdf
{
    static void Main()
    {
        // Load the PDF document
        var pdf = PdfDocument.FromFile("List.pdf");
        // Extract text from the PDF using IronPDF
        string pdfText = pdf.ExtractAllText();
        // Define delimiters for splitting text
        char[] delimiters = new char[] { ',', ';' };
        // Split the extracted text using delimiters
        string[] items = pdfText.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
        // Iterate through the items array and print each element
        foreach (var item in items)
        {
            Console.WriteLine(item.Trim()); // Trim to remove any leading or trailing whitespace
        }
    }
}
Imports IronPdf
Imports IronSoftware.Drawing

Friend Class ProcessPdf
	Shared Sub Main()
		' Load the PDF document
		Dim pdf = PdfDocument.FromFile("List.pdf")
		' Extract text from the PDF using IronPDF
		Dim pdfText As String = pdf.ExtractAllText()
		' Define delimiters for splitting text
		Dim delimiters() As Char = { ","c, ";"c }
		' Split the extracted text using delimiters
		Dim items() As String = pdfText.Split(delimiters, StringSplitOptions.RemoveEmptyEntries)
		' Iterate through the items array and print each element
		For Each item In items
			Console.WriteLine(item.Trim()) ' Trim to remove any leading or trailing whitespace
		Next item
	End Sub
End Class
$vbLabelText   $csharpLabel

在這個範例中,pdfText 可能包含一個類似 item1,item2;item3 的字串,這個字串被有效地分割成一個包含每個項目的 items 陣列。

以下是將用於此專案的 PDF:

!C# String Split (How it Works For Developers):圖 2 - 輸入 PDF "List.pdf",其中包含產品清單及其各自的價格。

OUTPUT 由程式提供。

!C# String Split (How it Works For Developers):圖 3 - 程式輸出使用 IronPDF 擷取 PDF 內的所有文字,再使用 String.Split 方法分割擷取的文字,並加上分隔符。

IronPDF 和 String.Split:一種協同作用的方法。

IronPDF 用於 PDF 處理,而 C# 的原生 String.Split 方法則用於字串處理,兩者的結合說明了和諧使用不同函式庫和功能的威力。 它展示了 C# 及其函式庫如何為開發人員提供廣泛的工具包,以有效率地處理各種格式和資料類型。

結論

在本教程中,我們使用 String.Split 方法,在 C# 的多樣化字串操作世界中遨遊。 我們從基本知識開始,瞭解如何使用單字元和多字元定界符分割字串。 我們深入探討了如何處理特殊情況,例如空陣列元素,並探討了 String.Split 方法的不同重載的意義,尤其是在處理各種分割情境時。

我們也看到 String.Split 不僅是一個理論概念,更是實際應用中的實用工具。 透過與 IronPDF 的整合,我們展示了一個真實的使用案例,說明如何處理從 PDF 擷取的文字 - 這是現代軟體開發的常見需求。

IronPDF 提供 免費試用,為您的 C# PDF 處理需求提供全面的解決方案。

請記住,您所寫的每一行程式碼、分割的每一個字串、解決的每一個問題,都會讓您在程式設計的道路上更進一步。 持續探索、持續學習,最重要的是持續編碼!

常見問題解答

如何在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。

C# 中的 String.Split 方法是什麼?

C# 中的 String.Split 方法用於根據指定的定界符將字串分割成子字串陣列。這對於解析字串和處理文字資料非常重要。

我可以使用 String.Split 來處理 PDF 中的文字嗎?

是的,您可以使用 IronPDF 從 PDF 文件中提取文字,然後應用 String.Split 方法來解析和分析提取的資訊。

在字串分割中使用多重定界符有哪些優點?

使用 String.Split 的多重分隔符可讓您處理具有不同分隔符的字串,方便您更彈性地解析複雜的資料格式。

如何在 C# 中分割字串時移除空條目?

您可以使用 String.SplitString.Split 一起使用 StringSplitOptions.RemoveEmptyEntries 來移除結果陣列中的任何空元素,這對於忽略連續定界符造成的空子串非常有用。

在文字資料處理中,字串分割的實際使用案例是什麼?

實際的使用案例包括解析逗號分隔值或處理從 PDF 擷取的文字資料,這些都可以使用 IronPDF 和 C# 中的 String.Split 方法來實現。

String.Split 如何處理較長字串的定界符?

String.Split 方法除了可以使用單個字元外,還可以使用字串作為分隔符,這對於分隔符可能是一個字或一連串字元的較複雜分隔情境非常有用。

使用 String.Split 是否會修改原始字串?

不會,使用 String.Split 之後,原始字串仍維持不變。該方法會返回一個新的子串陣列,而不會改變原始字串。

在 C# 中使用 String.Split 的基本語法是什麼?

String.Split 的基本語法涉及傳入一個分隔符,例如單一字元或字串。例如string[] parts = inputString.Split(',');,其中逗號是分隔符。

為什麼掌握字串操作對 C# 開發人員很重要?

掌握字串操作(包括使用 String.Split )對 C# 開發人員來說至關重要,因為它可以在各種應用程式中有效地解析和處理文字資料,提升整體的程式設計能力。

Jacob Mellor, Team Iron 首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。

Jacob 持有曼徹斯特大學土木工程一級榮譽学士工程學位(BEng) (1998-2001)。他於 1999 年在倫敦開設了他的第一家軟件公司,並於 2005 年製作了他的首個 .NET 組件,專注於解決 Microsoft 生態系統內的複雜問題。

他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。