.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。()用給定的分隔符的方法。 此方法在保持程式碼組織和可重用性的同時,擴展了C#string` 類的功能。

Iron Suite:C# 強大函式庫集合

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

IronPDF:HTML 轉換為 PDF

IronPDF 允許開發者將 HTML 渲染為 PDF直接在 .NET 應用程式中。 這個強大的庫可以幫助創建、編輯,甚至提取 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
VB   C#

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 套裝。 此捆綁優惠不僅可擴展您的開發工具包的功能,還代表了卓越的價值。

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