.NET 帮助

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

在C#中,Substring 方法是操作字符串的重要工具。 此功能允许开发人员根据指定的字符位置提取字符串的一部分。 本指南旨在详细解释公共字符串Substring方法和IronPDF库,提供详细的示例和说明,帮助初学者充分理解其用法和功能。

理解 Substring 方法

C#中的Substring方法是String类的一个成员,允许根据指定的参数从第一个字符开始进行操作。 它用于从指定索引开始检索字符串的一部分,并且可选地检索到指定的位置。 这种方法的语法非常简单,使其在任何需要字符串操作的编码场景中易于实现。

语法和参数

Substring 方法有两种主要形式:

public string Substring(int startIndex);
public string Substring(int startIndex, int length);
public string Substring(int startIndex);
public string Substring(int startIndex, int length);
public String Substring(Integer startIndex)
public String Substring(Integer startIndex, Integer length)
$vbLabelText   $csharpLabel
  1. public string Substring(int startIndex):这将获取一个从startIndex开始并延续到字符串末尾的子字符串。

  2. public string Substring(int startIndex, int length):此方法从startIndex开始检索一个指定length的子字符串。

    涉及的参数是:

    • int startIndex:这是子字符串开始的从零开始的索引。
    • int length:(可选)这是第二个参数。 这是返回子字符串中包含的字符数。

子字符串方法如何工作

Substring 方法的过程很简单。 调用时,它从给定索引(startIndex)开始提取原始字符串中的字符。 如果提供了 length 参数,方法将返回指定数量的字符。 如果没有 length 参数,它将继续到字符串的末尾。 在 C# 中使用substring int32确保两个参数(startIndex 和 length)都被视为整数,强制类型安全并防止潜在的运行时错误。

子字符串方法的详细示例

为了更好地理解Substring方法的实现,我们来看几个例子,这些例子展示了它的实际应用。

提取到字符串的末尾

假设你有一个字符串,并且你需要从特定的索引开始提取一个子字符串直到字符串的末尾。 以下是可能的实现方式:

// public static void main
public static void Main(string [] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7);
    Console.WriteLine(substring);
}
// public static void main
public static void Main(string [] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7);
    Console.WriteLine(substring);
}
' public static void main
Public Shared Sub Main(ByVal args() As String)
	Dim text As String = "Hello, world!"
	Dim substring As String = text.Substring(7)
	Console.WriteLine(substring)
End Sub
$vbLabelText   $csharpLabel

输出:

world!
world!
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'world!
$vbLabelText   $csharpLabel

在此示例中,Substring 方法从索引 7 开始,对应于 "world!" 中的 'w',并获取直到字符串结尾的每个字符。 当子字符串的长度是动态或未预定时,这特别有用。

提取指定长度的子字符串

现在,让我们看看一个同时指定起始索引和子字符串长度的场景:

public static void Main(string [] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7, 5);
    Console.WriteLine(substring);
}
public static void Main(string [] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7, 5);
    Console.WriteLine(substring);
}
Public Shared Sub Main(ByVal args() As String)
	Dim text As String = "Hello, world!"
	Dim substring As String = text.Substring(7, 5)
	Console.WriteLine(substring)
End Sub
$vbLabelText   $csharpLabel

输出:

world
world
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'world
$vbLabelText   $csharpLabel

在这里,子字符串从第七个字符开始并跨越五个字符长。 当您需要精确控制子字符串的边界时,这种方法非常有用。

从字符串数组中检索子字符串

假设你有一个字符串数组,并且你想基于指定的字符位置和长度从每个字符串中提取子字符串。 您可以使用 foreach 循环来遍历数组,并对每个字符串应用substring方法。

string [] array = { "apple", "banana", "orange" };
foreach (string str in array)
{
    string substring = str.Substring(1, 3); // substring starts from index 1
    Console.WriteLine(substring);
}
string [] array = { "apple", "banana", "orange" };
foreach (string str in array)
{
    string substring = str.Substring(1, 3); // substring starts from index 1
    Console.WriteLine(substring);
}
Dim array() As String = { "apple", "banana", "orange" }
For Each str As String In array
	Dim substring As String = str.Substring(1, 3) ' substring starts from index 1
	Console.WriteLine(substring)
Next str
$vbLabelText   $csharpLabel

该代码将输出

ppl
ana
ran
ppl
ana
ran
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'ppl ana ran
$vbLabelText   $csharpLabel

处理边缘情况

考虑边界情况以避免运行时错误(如ArgumentOutOfRangeException)是很重要的。 使用substring方法时,必须确保指定的字符位置和长度在原始字符串的范围内。 否则,可能会导致索引超出范围异常。 您可以检查原始字符串的长度以避免此类异常。 以下是一些关键点:

  • startIndex 必须在字符串的范围内。
  • startIndexlength 的总和不得超过原始字符串的长度。
  • startIndexlength的负值是不允许的,并将导致错误。

检查索引的有效性

为了确保子字符串提取不会导致错误,您可以添加检查:

public static void Main(string [] args)
{
    string text = "Hello, world!";
    int startIndex = 7;
    int length = 5;
    if (startIndex >= 0 && startIndex < text.Length && startIndex + length <= text.Length)
    {
        string substring = text.Substring(startIndex, length);
        Console.WriteLine(substring);
    }
    else
    {
        Console.WriteLine("Invalid substring parameters.");
    }
}
public static void Main(string [] args)
{
    string text = "Hello, world!";
    int startIndex = 7;
    int length = 5;
    if (startIndex >= 0 && startIndex < text.Length && startIndex + length <= text.Length)
    {
        string substring = text.Substring(startIndex, length);
        Console.WriteLine(substring);
    }
    else
    {
        Console.WriteLine("Invalid substring parameters.");
    }
}
Public Shared Sub Main(ByVal args() As String)
	Dim text As String = "Hello, world!"
	Dim startIndex As Integer = 7
	Dim length As Integer = 5
	If startIndex >= 0 AndAlso startIndex < text.Length AndAlso startIndex + length <= text.Length Then
		Dim substring As String = text.Substring(startIndex, length)
		Console.WriteLine(substring)
	Else
		Console.WriteLine("Invalid substring parameters.")
	End If
End Sub
$vbLabelText   $csharpLabel

在尝试提取子串之前,该代码块确保子串参数有效,从而避免了潜在的运行时错误。

在 C# 中整合 IronPDF 和 Substring 以动态创建 PDF

IronPDF 是一个强大的PDF库,允许开发人员直接在他们的.NET应用程序中创建、操作和渲染PDF文档。 它允许HTML 转换为 PDF,帮助创建定制和美观的 PDF 文档。 IronPDF支持一系列PDF操作,包括从HTML生成PDF、导出PDF、编辑现有PDF等,为在.NET环境中处理PDF文件提供了全面的工具包。

IronPDF 使转换 HTML 到 PDF 变得简单,同时保持布局和样式的完整性。 它是一个从基于网页的内容(如报告、发票和文档)创建PDF的出色工具。 HTML文件、URL和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 = "https://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 = "https://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 = "https://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

将IronPDF与C# Substring 方法结合使用,对于生成在PDF转换之前需要进行文本操控和提取的PDF文档非常有用。 例如,如果您需要从大段文本中提取特定信息并以PDF格式呈现,您可以使用Substring方法来隔离所需文本,并使用IronPDF将此文本转换为PDF文档。

代码示例:从提取的字符串生成 PDF

假设有一种情况,您有一个包含在特定索引处的重要信息的大文本,并且您需要提取这些信息并生成一个PDF文件。 以下是使用IronPDF和C# Substring 方法实现此操作的逐步示例。

using IronPdf;
using System;
public class PdfGenerator
{
    public static void Main(string [] args)
    {
        License.LicenseKey = "License-Key";
        // Original large text from which we need to extract information
        string originalText = "IronPDF helps you generate PDF documents in .NET applications easily. Discover more about IronPDF at the official site.";
        // Using the Substring method to extract the part of the string that talks about IronPDF
        string importantInfo = originalText.Substring(0, 65);  // Extracts the first sentence
        // Create a PDF document with IronPDF
        var renderer = new ChromePdfRenderer();
        // Convert the extracted text to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf($"<h1>Extracted Information</h1><p>{importantInfo}</p>");
        // Save the PDF to a file
        pdf.SaveAs("ExtractedInfo.pdf");
        // Confirmation output
        Console.WriteLine("PDF generated successfully with extracted information.");
    }
}
using IronPdf;
using System;
public class PdfGenerator
{
    public static void Main(string [] args)
    {
        License.LicenseKey = "License-Key";
        // Original large text from which we need to extract information
        string originalText = "IronPDF helps you generate PDF documents in .NET applications easily. Discover more about IronPDF at the official site.";
        // Using the Substring method to extract the part of the string that talks about IronPDF
        string importantInfo = originalText.Substring(0, 65);  // Extracts the first sentence
        // Create a PDF document with IronPDF
        var renderer = new ChromePdfRenderer();
        // Convert the extracted text to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf($"<h1>Extracted Information</h1><p>{importantInfo}</p>");
        // Save the PDF to a file
        pdf.SaveAs("ExtractedInfo.pdf");
        // Confirmation output
        Console.WriteLine("PDF generated successfully with extracted information.");
    }
}
Imports IronPdf
Imports System
Public Class PdfGenerator
	Public Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "License-Key"
		' Original large text from which we need to extract information
		Dim originalText As String = "IronPDF helps you generate PDF documents in .NET applications easily. Discover more about IronPDF at the official site."
		' Using the Substring method to extract the part of the string that talks about IronPDF
		Dim importantInfo As String = originalText.Substring(0, 65) ' Extracts the first sentence
		' Create a PDF document with IronPDF
		Dim renderer = New ChromePdfRenderer()
		' Convert the extracted text to PDF
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf($"<h1>Extracted Information</h1><p>{importantInfo}</p>")
		' Save the PDF to a file
		pdf.SaveAs("ExtractedInfo.pdf")
		' Confirmation output
		Console.WriteLine("PDF generated successfully with extracted information.")
	End Sub
End Class
$vbLabelText   $csharpLabel

C# 子字符串(开发人员如何使用):图 1

该过程展示了一种集成文本操作和PDF创建的简单方法,这对于生成需要从较大文本中提取和呈现特定信息的报告或文档特别有用。

结论

C# Substring(适用于开发人员的工作原理):图2

C#中的Substring方法是字符串处理的强大工具,使开发人员能够轻松根据指定的字符位置提取文本部分。 通过理解和利用这种方法,您可以有效地处理广泛的文本处理任务。 请记得考虑边缘情况并验证索引,以保持应用程序的健壮性。 IronPDF为开发人员提供免费试用以探索其功能,产品的授权费用从$749开始。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
C# 四舍五入到小数点后两位(开发人员指南)
下一步 >
C# 可选参数 (开发人员如何使用)