.NET 幫助

C# 字串分割(開發者應如何操作)

無論您是程式設計新手還是正在成長的 C# 開發人員,了解如何分割字串是一項基本技能,能夠極大地提升您的編碼能力。 在本教程中,我們將深入探討 C# 中的分割操作。

字串拆分介紹

在程式設計中,字串是一個字符序列,有時您可能需要根據特定的分隔符或界定符將其拆分成更小的部分。 這個過程被稱為字串分割,是處理文字資料時的一項重要技術。 想像一下,你有一句話,而且你想要將其拆分成單個字詞——這是一個經典的字串拆分例子。

在 C# 中,String.Split() 是您用於此任務的首選工具。 Split 方法允許您根據給定的分隔符將字串分割成子字串陣列。 讓我們深入探討如何有效地使用這種方法的各個方面。

使用String.Split()

基本字串分割

最簡單的使用String.Split()方法的方式是提供一個單字符分隔符。 以下是將句子拆分成單詞的方法:

string sentence = "Hello, world! Welcome to C# programming.";
char separator = ' '; // Space character
string[] words = sentence.Split(separator); // returned array
string sentence = "Hello, world! Welcome to C# programming.";
char separator = ' '; // Space character
string[] words = sentence.Split(separator); // returned array
Dim sentence As String = "Hello, world! Welcome to C# programming."
Dim separator As Char = " "c ' Space character
Dim words() As String = sentence.Split(separator) ' returned array
$vbLabelText   $csharpLabel

在此範例中,句子被分成一個字串陣列,每個元素代表一個單詞。 此處的分隔符是空格字元。 您可以調整分隔符號來根據不同的條件分割字符串,比如逗號、分號或任何您選擇的字符。

處理空陣列元素

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

為了解決此問題,您可以使用StringSplitOptions.RemoveEmptyEntries選項:

string fruits = "apple,,banana,orange";
char separator = ',';

string[] fruitArray = fruits.Split(new char[] { separator }, StringSplitOptions.RemoveEmptyEntries); // stringsplitoptions options
string fruits = "apple,,banana,orange";
char separator = ',';

string[] fruitArray = fruits.Split(new char[] { separator }, StringSplitOptions.RemoveEmptyEntries); // stringsplitoptions options
Dim fruits As String = "apple,,banana,orange"
Dim separator As Char = ","c

Dim fruitArray() As String = fruits.Split(New Char() { separator }, StringSplitOptions.RemoveEmptyEntries) ' stringsplitoptions options
$vbLabelText   $csharpLabel

選擇此選項時,連續分隔符號所產生的空陣列元素將自動從結果陣列中移除。

使用多個分隔符進行分割

在更複雜的情況下,您可能需要使用多個字符作為分隔符來拆分字串。 假設你有一個像apple;banana orange這樣的字串,並想要以分號和空格作為分隔符來拆分它。

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

string fruits = "apple;banana orange";
char[] separators = { ';', ' ' };
// split string delimited
string[] fruitArray = fruits.Split(separators);
string fruits = "apple;banana orange";
char[] separators = { ';', ' ' };
// split string delimited
string[] fruitArray = fruits.Split(separators);
Dim fruits As String = "apple;banana orange"
Dim separators() As Char = { ";"c, " "c }
' split string delimited
Dim fruitArray() As String = fruits.Split(separators)
$vbLabelText   $csharpLabel

這將產生一個包含三個元素的數組:apple, banana,orange.

限制子字串的數量

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

string longString = "one,two,three,four,five";
char separator = ',';
int maxSubstrings = 3;

string[] firstThreeItems = longString.Split(separator, maxSubstrings);
string longString = "one,two,three,four,five";
char separator = ',';
int maxSubstrings = 3;

string[] firstThreeItems = longString.Split(separator, maxSubstrings);
Dim longString As String = "one,two,three,four,five"
Dim separator As Char = ","c
Dim maxSubstrings As Integer = 3

Dim firstThreeItems() As String = longString.Split(separator, maxSubstrings)
$vbLabelText   $csharpLabel

maxSubstrings 參數設為 3,結果陣列將包含 one, two,three. 字串的其餘部分(four,five)保持不變。

建立字串分割擴充功能

雖然內建的String.Split()方法涵蓋了大部分的字串分割需求,但您也可以創建自己的擴展方法,以根據需求定制功能。 假設你想根據特定的子字串而不是單個字符來分割字串。 以下是你可以這樣做的方法:

using System;

namespace StringSplitExtension
{
    public static class StringExtensions
    {
        public static string[] SplitBySubstring(this string input, string s)
        {
            return input.Split(new string[] { s }, StringSplitOptions.None);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string text = "apple+banana+orange";
            string separator = "+";

            string[] result = text.SplitBySubstring(separator);
            foreach (string item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}
using System;

namespace StringSplitExtension
{
    public static class StringExtensions
    {
        public static string[] SplitBySubstring(this string input, string s)
        {
            return input.Split(new string[] { s }, StringSplitOptions.None);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string text = "apple+banana+orange";
            string separator = "+";

            string[] result = text.SplitBySubstring(separator);
            foreach (string item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}
Imports System

Namespace StringSplitExtension
	Public Module StringExtensions
		<System.Runtime.CompilerServices.Extension> _
		Public Function SplitBySubstring(ByVal input As String, ByVal s As String) As String()
			Return input.Split(New String() { s }, StringSplitOptions.None)
		End Function
	End Module

	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim text As String = "apple+banana+orange"
			Dim separator As String = "+"

			Dim result() As String = text.SplitBySubstring(separator)
			For Each item As String In result
				Console.WriteLine(item)
			Next item
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

在此範例中,我們定義了一個名為SplitBySubstring的擴充方法,該方法以一個字串分隔符作為輸入,並使用內建的String.Split()方法與給定的分隔符。 此方法擴展了 C# 中 string 類的功能,同時保持您的程式碼組織良好且可重複使用。

Iron Suite: 一個強大的C#庫集合

Iron Suite 是一套全面的工具集,旨在賦予 C# 開發人員強大的功能,在各個領域提供先進功能。 從文件操作到光學字符識別(OCR),這些庫都是任何現代開發工具包的重要組成部分。 有趣的是,它們可以與 C# 中的 String.Split() 方法相關,這是一個 C# 中的基本字串操作函數。

IronPDF:HTML 轉換為 PDF

IronPDF 允許開發人員在 .NET 應用程式中直接將 HTML 渲染為 PDF。 這個強大的庫可以幫助創建、編輯,甚至提取 PDF 內容。 它提供直觀的API,使PDF操作像執行分割字符串這樣的字符串操作一樣簡單。 欲了解更多資訊、教程和使用 IronPDF 的指導,請造訪 IronPDF 的網站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

IronXL:在Excel操作中脫穎而出

在使用 C# 應用程式處理 Excel 文件時,IronXL 是首選的程式庫。 它允許開發人員輕鬆讀取、寫入和操作 Excel 文件,就像通過 C# 操作字符串一樣。

IronOCR:光學字符識別

IronOCR 是開發人員將 OCR 功能整合到其應用程式中的重要函式庫。 通過使用IronOCR,您可以從圖像和掃描的文件中讀取文本,將其轉換為可管理的字符串,就像使用C# Split String進行操作一樣。 了解有關 IronOCR 的更多資訊,以及如何將其整合到您的專案中,請造訪IronOCR 網站

IronBarcode:條碼掃描與生成

最後,Iron Suite 包含 IronBarcode,一個可以在 C# 應用程式中讀取和生成條碼的全面解決方案。 此函式庫將條碼操作的複雜度降低至類似 C# 字串操作的層級。

結論

Iron Suite,包括其各種組件 IronPDF、IronXL、IronOCR 和 IronBarcode,為開發者提供處理 PDF、Excel 檔案、光學字符識別(OCR)和條碼的簡單解決方案。 通過簡化複雜的操作,就像C#的Split String方法簡化字符串操作一樣,這些庫是現代開發者的絕佳工具。

每一個這些令人驚豔的產品都提供免費試用來探索和實驗全部功能範圍。 每個產品的授權費用從 $749 開始,為進階功能提供了經濟實惠的入門途徑。

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

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
C# Getter Setter(開發人員如何運作)
下一個 >
.NET Core Polly(如何為開發者運作)