.NET ヘルプ

開発者向けC# Substring(その仕組み)

C#では、Substring メソッド は文字列を操作するための重要なツールです。 この関数は、開発者が指定された文字位置に基づいて文字列の一部を抽出することを可能にします。 このガイドは、パブリック文字列SubstringメソッドとIronPDFライブラリを徹底的に説明し、初心者がその使用法と機能を完全に理解できるように、詳細な例と説明を提供することを目的としています。

サブストリングメソッドの理解

C#のSubstringメソッドは、Stringクラスのメンバーとして、指定されたパラメータに基づいて最初の文字から操作を可能にします。 指定されたインデックスから文字列の一部を取得し、オプションで指定された位置まで取得するために使用されます。 このメソッドの構文はシンプルで、文字列操作が必要なあらゆるコーディングシナリオに簡単に実装できます。

構文とパラメータ

Substring メソッドには、主に2つの形式があります。

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: (任意)これは2番目のパラメータです。 これは、返される部分文字列に含める文字数です。

「Substringメソッドの仕組み」

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

ここでは、部分文字列は7番目の文字から始まり、5文字の長さに及びます。 このメソッドは、サブストリングの境界を正確に制御する必要がある場合に非常に有用です。

配列から部分文字列を取得する

文字列の配列があり、指定された文字の位置と長さに基づいて各文字列から部分文字列を抽出したいとします。 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 の合計は、元の文字列の長さを超えてはいけません。
  • startIndex または length の負の値は許可されておらず、エラーを引き起こします。

インデックスの有効性の確認

エラーを引き起こさないようにサブストリング抽出を確実にするために、チェックを追加できます:

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を統合して動的PDFを作成する

IronPDFは、開発者が.NETアプリケーション内で直接、PDFドキュメントを作成、操作、レンダリングできる強力なPDFライブラリです。 カスタマイズされた美しいPDFドキュメントを作成するのに役立つHTMLからPDFへの変換を可能にします。 IronPDFは、HTMLからPDFを生成する、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# Substring(開発者向けの使い方):図1

このプロセスは、テキスト操作とPDF作成を統合する簡単な方法を示しており、大規模なテキストから特定の情報を抽出して提示する必要があるレポートやドキュメントの生成に特に役立ちます。

結論

C# Substring(開発者向けの使い方):図2

C#のSubstringメソッドは、文字列の操作において強力なツールであり、指定された文字位置に基づいてテキストの一部を簡単に抽出することを可能にします。 この方法を理解し活用することにより、幅広いテキスト処理タスクを効果的に扱うことができます。 アプリケーションの堅牢性を維持するために、エッジケースを考慮し、インデックスを検証することを忘れないでください。 IronPDFは、その機能を探索するために開発者向け無料トライアルを提供しており、製品のライセンスは$749から始まります。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
C# 小数点以下第2位までに丸める方法(開発者向けの動作原理)
次へ >
C# オプション引数 (開発者向けの動作方法)