.NET 幫助

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

發佈 2023年8月29日
分享:

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

字符串拆分簡介

在程式設計中,字串是一系列字符,在某些情況下,您可能需要根據特定的分隔符或定界符將其拆分為更小的部分。這個過程稱為字串拆分,這是在處理文本資料時必不可少的技術。假設您有一句話,您想將其分隔成單個單詞——這是一個經典的字串拆分範例。

在 C# 中,String.Split() 是您完成此任務的首選工具。Split 方法允許您根據給定的分隔符將字符串分成子字符串數組。我們來深入探討此方法的各個方面,以便有效地使用它。

使用 `String.Split()```


### 基礎字串分割

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

```csharp
string sentence = "Hello, world! Welcome to C# programming.";
char separator = ''; // Space character
string [] words = sentence.Split(separator); // returned array

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

處理空陣列元素

有時候,在分割字串時,您可能會遇到連續分隔符導致空陣列元素的情況。例如,考慮字串 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
VB   C#

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

使用多重分隔符進行拆分

在更複雜的場景中,您可能需要使用多個字符作為分隔符來拆分字符串。想像一下,您有一個像 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)
VB   C#

這將產生一個包含三個元素的數組: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)
VB   C#

maxSubstrings 參數設置為 3 時,結果數組將包含 one, two,three. 字串的剩餘部分 (四,五) 保持不變。

創建您的字串分割擴展

雖然內建的 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
VB   C#

在這個例子中,我們定義了一個名為 SplitBySubstring 的擴展方法,該方法以一個字串分隔符做為輸入並使用內建的 String.Split。()method 使用給定的分隔符號。這種方法擴展了 C# 的 string 類的功能,同時保持您的代碼井然有序且可重複使用。

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

Iron Suite是為C#開發人員設計的全面工具集,提供在各種領域的先進功能。從文檔處理到光學字符識別 (光學字符識別),這些庫是任何現代開發工具箱中不可或缺的一部分。有趣的是,它們可以與C# String.Split相關。()`方法,是C#中一個基本的字串操作函數。

IronPDF:將 HTML 轉換為 PDF

IronPDF 允許開發人員 將 HTML 渲染為 PDF 直接在 .NET 應用程式內。這個強大的庫幫助創建、編輯,甚至提取 PDF 內容。它提供了一個直觀的 API,使 PDF 操作像執行 Split String 一樣簡單。欲獲取更多信息、教程和使用 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
VB   C#

IronXL: 在 Excel 操作中的卓越表現

當涉及在 C# 應用程序中處理 Excel 文件時,IronXL 是值得信賴的庫。它允許開發人員輕鬆地讀取、寫入和操作 Excel 文件,就像通過 C# 處理字符串操作一樣。

IronOCR: Optical Character Recognition

IronOCR 是一個對於開發者在他們的應用程式中融入光學字符識別 (OCR) 功能的重要庫。通過利用 IronOCR,您可以從圖像和掃描文件中讀取文字,將它們轉換成可操作的字符串,就像您可能使用 C# 分割字符串一樣。了解更多關於 IronOCR 的資訊,以及如何將其整合到您的項目中,請訪問 IronOCR 網站.

IronBarcode: 條碼掃描和生成

最終,Iron Suite 包括 IronBarcode,一個在 C# 應用程序中讀取和生成條碼的綜合解決方案。這個庫將條碼操作的複雜性降低到類似於 C# 字串操作的水平。

結論

Iron Suite 透過其各種組件,IronPDF、IronXL、IronOCR 和 IronBarcode,為開發者提供處理 PDF、Excel 文件、OCR 和條碼的簡單解決方案。通過簡化複雜的操作,就如同 C# Split String 方法簡化了字串操作一樣,這些庫是現代開發者的絕佳工具。

這些令人驚嘆的產品每一個都提供了 免費試用 探索和實驗完整的功能範圍。每個產品的授權起價為 $749,提供了一個經濟實惠的通道來獲得高級功能。

全套 Iron 套件包的價格僅為兩款單獨產品的價格。這個捆綁優惠不僅擴展了您開發工具包的能力,還具有極高的價值。

< 上一頁
C# Getter Setter(開發人員如何運作)
下一個 >
.NET Core Polly(如何為開發者運作)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >