.NET 帮助

C# 分割字符串(开发人员如何使用)

发布 2023年八月29日
分享:

无论您是编程新手还是 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."
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'char separator = ''; string [] words = sentence.Split(separator); ' returned array
VB   C#

在本例中,句子被分成一个字符串数组,每个元素代表一个单词。这里的分隔符是空格。您可以调整分隔符,根据不同的标准分割字符串,如逗号、分号或您选择的任何其他字符。

处理空数组元素

有时,在分割字符串时,可能会遇到连续分隔符导致数组元素为空的情况。例如,考虑字符串 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#

使用该选项后,由连续分隔符引起的空数组元素将自动从结果数组中删除。

使用多个分隔符分隔

在更复杂的情况下,您可能需要使用多个字符作为分隔符来分割字符串。想象一下,您有一个字符串,如 "苹果、香蕉、橙子",您想用分号和管道作为分隔符来分割它。

为此,您可以使用 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#

这将产生一个包含三个元素的数组:苹果"、"香蕉 "和 "橘子"。

限制子字符串的数量

在某些情况下,您可能希望将一个字符串分割成数量有限的子串。这在处理长字符串或只对特定数量的字符串感兴趣时非常有用。字符串分割()方法允许您指定要生成的子字符串的最大数量:

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&num 库集合

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 方法简化了字符串操作一样,是现代开发人员的绝佳工具。

这些令人难以置信的产品都提供了 免费试用 探索和尝试各种功能。每个产品的许可证都从"$liteLicense "开始,为高级功能提供了一个经济实惠的途径。

只需购买两个单个产品的价格,即可购买完整的 Iron Suite 软件包。这种捆绑式产品不仅扩展了开发工具包的功能,而且价值非凡。

< 前一页
C# Getter Setter(开发者如何使用)
下一步 >
.NET Core Polly(开发人员如何使用)

准备开始了吗? 版本: 2024.10 刚刚发布

免费NuGet下载 总下载量: 11,108,738 查看许可证 >