跳至頁尾內容
.NET 幫助

C# 字串分割(開發者使用方法)

無論您是程式設計新手或是 C# 開發新秀,瞭解如何分割字串都是一項基本技能,可大幅提升您的編碼能力。 在本教程中,我們將深入介紹 C# 中的分割操作。

分割字串簡介

在程式設計中,字串是一連串的字元,在某些情況下,您可能需要根據特定的分隔符或定界符將字串分割成較小的部分。 此過程稱為 字串分割,是處理文字資料時不可或缺的技術。 想像您有一個句子,而您想要將它分隔成單獨的字詞 - 這就是典型的字串分割範例。

在 C# 中,String.Split() 是您執行此任務的常用工具。 Split 方法允許您根據指定的分隔符將字串分割成子字串陣列。 讓我們深入瞭解有效使用此方法的各個面向。

使用 String.Split()

基本字串分割

String.Split()方法最直接的用途是提供單一字元分隔符。 以下是如何將一個句子拆分成幾個字:

// Define a sentence to split
string sentence = "Hello, world! Welcome to C# programming.";
// Define the character separator
char separator = ' '; // Space character
// Split the sentence into words
string[] words = sentence.Split(separator);
// Define a sentence to split
string sentence = "Hello, world! Welcome to C# programming.";
// Define the character separator
char separator = ' '; // Space character
// Split the sentence into words
string[] words = sentence.Split(separator);
$vbLabelText   $csharpLabel

在這個範例中,句子被分成一個字串陣列,每個元素代表一個字。 這裡的分隔符是空格符號。 您可以調整分隔符,以根據不同的標準分割字串,例如逗號、分號或您選擇的任何其他字元。

處理空陣列元素

有時候,在分割字串時,可能會遇到連續的分隔符會導致陣列元素為空的情況。 例如,考慮字串 apple,,banana,orange 。 如果您使用逗號作為分隔符來分割,最後會得到一個在連續逗號之間包含空元素的陣列。

為了處理這個問題,您可以使用 StringSplitOptions.RemoveEmptyEntries 選項:

// Define a string with consecutive separators
string fruits = "apple,,banana,orange";
char separator = ','; // Separator character

// Split and remove empty entries
string[] fruitArray = fruits.Split(new char[] { separator }, StringSplitOptions.RemoveEmptyEntries);
// Define a string with consecutive separators
string fruits = "apple,,banana,orange";
char separator = ','; // Separator character

// Split and remove empty entries
string[] fruitArray = fruits.Split(new char[] { separator }, StringSplitOptions.RemoveEmptyEntries);
$vbLabelText   $csharpLabel

使用此選項,由連續分隔符造成的空陣列元素將自動從結果陣列中移除。

使用多重分隔符分割

在更複雜的情況下,您可能需要使用多個字元作為分隔符來分割字串。 想像您有一個類似 apple;banana orange 的字串,而您想要使用分號和空格作為分隔符來分割它。

為了達到此目的,您可以使用 string.Split() 方法與 params char 參數:

// Define a string with multiple delimiters
string fruits = "apple;banana orange";
char[] separators = { ';', ' ' }; // Multiple separators

// Split the string using multiple delimiters
string[] fruitArray = fruits.Split(separators);
// Define a string with multiple delimiters
string fruits = "apple;banana orange";
char[] separators = { ';', ' ' }; // Multiple separators

// Split the string using multiple delimiters
string[] fruitArray = fruits.Split(separators);
$vbLabelText   $csharpLabel

這將產生一個包含三個元素的陣列:apple, banana, 和 orange.

限制子串數量

在某些情況下,您可能想要將字串分割成數量有限的子字串。 這在處理長字串或只對特定數量的片段感興趣時會很有用。 String.Split() 方法允許您指定要產生的最大子串數目:

// Define a long string to split
string longString = "one,two,three,four,five";
char separator = ','; // Separator character
int maxSubstrings = 3; // Limit to the first three substrings

// Split the string with a limit on the number of substrings
string[] firstThreeItems = longString.Split(separator, maxSubstrings);
// Define a long string to split
string longString = "one,two,three,four,five";
char separator = ','; // Separator character
int maxSubstrings = 3; // Limit to the first three substrings

// Split the string with a limit on the number of substrings
string[] firstThreeItems = longString.Split(separator, maxSubstrings);
$vbLabelText   $csharpLabel

maxSubstrings 參數設定為 3 時,產生的陣列將包含 one, two, 和 three. 字串的剩餘部分 (four,five) 則保持不變。

建立您的字串分割擴充套件

雖然內建的 String.Split() 方法涵蓋了大部分的字串分割需求,但您也可以建立自己的擴充方法,以根據您的需求量身打造功能。 比方說,您想要根據特定子串而非單一字元分割字串。 您可以這樣做

using System;

namespace StringSplitExtension
{
    // Define a static class to hold the extension method
    public static class StringExtensions
    {
        // Extension method for splitting a string by a substring
        public static string[] SplitBySubstring(this string input, string s)
        {
            return input.Split(new string[] { s }, StringSplitOptions.None);
        }
    }

    // Test the extension method
    class Program
    {
        static void Main(string[] args)
        {
            string text = "apple+banana+orange";
            string separator = "+"; // Substring separator

            // Use the custom extension method to split the string
            string[] result = text.SplitBySubstring(separator);
            foreach (string item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}
using System;

namespace StringSplitExtension
{
    // Define a static class to hold the extension method
    public static class StringExtensions
    {
        // Extension method for splitting a string by a substring
        public static string[] SplitBySubstring(this string input, string s)
        {
            return input.Split(new string[] { s }, StringSplitOptions.None);
        }
    }

    // Test the extension method
    class Program
    {
        static void Main(string[] args)
        {
            string text = "apple+banana+orange";
            string separator = "+"; // Substring separator

            // Use the custom extension method to split the string
            string[] result = text.SplitBySubstring(separator);
            foreach (string item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}
$vbLabelText   $csharpLabel

在這個範例中,我們定義了一個名為 SplitBySubstring 的擴充函式,它接受子串分隔符作為輸入,並使用內建的 String.Split() 方法與指定的分隔符。 此方法可擴展 C# 的 string 類的功能,同時讓您的程式碼井井有條並可重複使用。

Iron Suite:適用於 C# 的強大程式庫集合;

Iron Suite 是一套全面的工具,專為增強 C# 開發人員的能力而設計,提供跨不同領域的進階功能。 從文件處理到光學字元識別 (OCR),這些函式庫是任何現代開發工具包的重要組成部分。 有趣的是,它們可以與 C# String.Split() 方法相關,這是 C# 中一個基本的字串操作函數。

IronPDF:將 HTML 轉換為 PDF

IronPDF 可讓開發人員直接在 .NET 應用程式中 將 HTML 繪製成 PDFs。 這個功能強大的函式庫有助於建立、編輯甚至是擷取 PDF 內容。 它提供直觀的 API,讓 PDF 操作就像執行 Split String 等字串操作一樣簡單直接。 有關使用 IronPDF 的進一步資訊、教學和指導,請造訪 IronPDF 的網站HTML to 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");
    }
}
$vbLabelText   $csharpLabel

IronXL:卓越的 Excel 作業

當需要在 C# 應用程式中處理 Excel 檔案時,IronXL.Excel 是最佳的函式庫。 它可以讓開發人員輕鬆地讀取、寫入和處理 Excel 檔案,就像透過 C# 來處理 String 的操作一樣。

IronOCR:光學字元辨識

IronOCR 是將 OCR 功能整合至應用程式的開發人員必備的函式庫。 利用 IronOCR,您可以讀取影像和掃描文件中的文字,並將它們轉換成可管理的字串,就像您可能會使用 C# Split String 來處理的字串一樣。 請造訪 IronOCR 網站,進一步瞭解 IronOCR 以及如何將它整合到您的專案中。

IronBarcode:BarCode 掃描與產生。

最後,Iron Suite 包括 IronBarcode,這是在 C# 應用程式中讀取與產生條碼的全面解決方案。 此程式庫將 BarCode 操作的複雜度降低到與 C# 等字串操作相若的程度。

結論

Iron Suite 包含 IronPDF、IronXL、IronOCR 和 IronBarcode 等多個元件,可為處理 PDF、Excel 檔案、OCR 和條碼的開發人員提供簡單的解決方案。 透過簡化複雜的操作,就像 C# Split String 方法簡化字串操作一樣,這些函式庫是現代開發人員的好工具。

這些令人難以置信的產品都提供 免費試用,以探索和實驗全部功能。 每個產品的授權都從 liteLicense 開始,提供經濟實惠的進階功能。

只需支付兩個單獨產品的價格,即可購買完整的 Iron Suite 套件。 此捆綁式產品不僅擴展了您開發工具包的功能,也代表了卓越的價值。

常見問題解答

C# 中的 String.Split() 方法是如何運作的?

C# 中的 String.Split() 方法可以根據指定的分隔符號將字串分割成子字串陣列。這對於高效地解析和管理字串資料非常有用。

C#中有哪些高階的字串分割方法?

C# 中的高階字串分割功能包括使用多個分隔符號、使用 StringSplitOptions.RemoveEmptyEntries 刪除空白條目,以及使用 Split 方法中的附加參數限制子字串的數量。

我可以在 C# 中建立自訂方法來分割字串嗎?

是的,您可以定義一個擴充方法來建立自訂字串分割功能。例如,您可以使用 SplitBySubstring 擴充方法,根據特定的子字串而不是單一字元來分割字串。

針對 C# 開發人員的 Iron Suite 是什麼?

Iron Suite 是一套功能強大的程式庫,旨在增強 C# 開發。它包含 IronPDF(用於 PDF 處理)、IronXL(用於 Excel 操作)、IronOCR(用於光學字元辨識)和 IronBarcode(用於條碼產生)等工具。

如何在C#應用程式中將HTML轉換為PDF?

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

IronOCR 為 C# 應用程式提供哪些功能?

IronOCR 允許將光學字元辨識整合到 C# 應用程式中,從而能夠讀取影像和掃描文件中的文字並將其轉換為可編輯和管理的字串。

Iron Suite有哪些授權授權選項?

Iron Suite 為每款產品提供免費試用,授權等級從「liteLicense」起。整套產品的價格僅相當於兩款單獨產品,對開發者而言極具性價比。

IronPDF 如何簡化 .NET 中的 PDF 操作?

IronPDF 提供了一個直覺的 API,在 .NET 應用程式中建立、編輯和提取 PDF 內容,使開發人員能夠輕鬆有效地操作 PDF。

Jacob Mellor,Team Iron 首席技術官
首席技術長

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。