フッターコンテンツにスキップ
.NETヘルプ

C# Substring(開発者向けの動作方法)

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

Substring メソッドを理解する

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 を使用すると、両方のパラメーター (startIndex および length) が整数として扱われ、型の安全性が確保され、潜在的なランタイムエラーが防止されます。

Substring メソッドの詳細な例

Substring メソッドがどのように実装されているかをよりよく理解するために、その実用的な応用を示すいくつかの例を考えてみましょう。

文字列の終わりまでの抽出

特定のインデックスから文字列の終わりまで部分文字列を抽出する必要があるとしましょう。 以下がその方法です:

// Main method demonstrating substring extraction
public static void Main(string[] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7); // Extract from index 7 to the end
    Console.WriteLine(substring);
}
// Main method demonstrating substring extraction
public static void Main(string[] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7); // Extract from index 7 to the end
    Console.WriteLine(substring);
}
' Main method demonstrating substring extraction
Public Shared Sub Main(ByVal args() As String)
	Dim text As String = "Hello, world!"
	Dim substring As String = text.Substring(7) ' Extract from index 7 to the end
	Console.WriteLine(substring)
End Sub
$vbLabelText   $csharpLabel

出力:

world!

この例では、Substring メソッドはインデックス 7 から始まり、"world!" の 'w' に対応し、文字列の終わりまでのすべての文字を取得します。 これは、部分文字列の長さが動的であるか、予め決まっていない場合に特に便利です。

指定された長さの部分文字列の抽出

次に、開始インデックスと部分文字列の長さの両方が指定されているシナリオを見てみましょう:

// Main method demonstrating substring extraction with specified length
public static void Main(string[] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7, 5); // Starts at index 7, length of 5
    Console.WriteLine(substring);
}
// Main method demonstrating substring extraction with specified length
public static void Main(string[] args)
{
    string text = "Hello, world!";
    string substring = text.Substring(7, 5); // Starts at index 7, length of 5
    Console.WriteLine(substring);
}
' Main method demonstrating substring extraction with specified length
Public Shared Sub Main(ByVal args() As String)
	Dim text As String = "Hello, world!"
	Dim substring As String = text.Substring(7, 5) ' Starts at index 7, length of 5
	Console.WriteLine(substring)
End Sub
$vbLabelText   $csharpLabel

出力:

world

ここでは、部分文字列は7番目の文字から始まり、5文字の長さになります。 この方法は、部分文字列の境界を正確に制御する必要がある場合に非常に便利です。

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

文字列の配列があり、指定された文字位置と長さに基づいて各文字列から部分文字列を抽出したい場合としましょう。 foreach ループを使用して配列を反復処理し、各文字列に Substring メソッドを適用できます。

// Example of extracting substrings from an array of strings
string[] array = { "apple", "banana", "orange" };
foreach (string str in array)
{
    string substring = str.Substring(1, 3); // Substring starts from index 1
    Console.WriteLine(substring);
}
// Example of extracting substrings from an array of strings
string[] array = { "apple", "banana", "orange" };
foreach (string str in array)
{
    string substring = str.Substring(1, 3); // Substring starts from index 1
    Console.WriteLine(substring);
}
' Example of extracting substrings from an array of strings
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

エッジケースの処理

例外として ArgumentOutOfRangeException などのランタイムエラーを避けるために、エッジケースを考慮することが重要です。 Substring メソッドを使用する場合、指定された文字位置と長さが元の文字列の範囲内にあることを確認することが重要です。 そうでないと、インデックス範囲外の例外が発生する可能性があります。 そのような例外を避けるために、元の文字列の長さを確認することができます。 いくつかのキー ポイントは次のとおりです:

  • startIndex は文字列の範囲内でなければなりません。
  • startIndexlength の合計は元の文字列の長さを超えてはならない。
  • startIndex または length に負の値を指定するとエラーが発生します。

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

部分文字列の抽出がエラーを引き起こさないようにするために、チェックを追加することができます:

// Main method with checks to avoid ArgumentOutOfRangeException
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.");
    }
}
// Main method with checks to avoid ArgumentOutOfRangeException
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.");
    }
}
' Main method with checks to avoid ArgumentOutOfRangeException
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# で Substring と IronPDF を統合して動的 PDF を作成する

IronPDF は強力な PDF ライブラリで、開発者が .NET アプリケーション内でPDFドキュメントを直接作成、操作、レンダリングすることができます。 HTML を PDF に変換することで、カスタマイズされた美しい 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)
    {
        // Applying your license for IronPDF
        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)
    {
        // Applying your license for IronPDF
        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)
		' Applying your license for IronPDF
		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 は開発者がその機能を探索するための無料試用版を提供しており、製品のライセンスは $799から始まります。

よくある質問

C#におけるサブストリングメソッドはどう機能するのですか?

C#のサブストリングメソッドは、Stringクラスの関数で、指定された開始インデックスと任意の長さに基づいて文字列の一部を抽出できるようにします。これにより、文字列を小さくて管理しやすい部分に分解し、さらなる操作や分析が可能になります。

サブストリングメソッドの一般的な使用例は何ですか?

サブストリングメソッドの一般的な使用例として、パスからファイル名を取得する、またはメールアドレスからドメイン名を分離するなど、文字列から特定のデータを抽出することがあります。サブストリングメソッドは、IronPDFライブラリと一緒に使用して、テキストを抽出してPDF文書に変換することもできます。

抽出されたテキストをC#でPDFに変換するにはどうすればよいですか?

抽出されたテキストをC#でPDFに変換するには、IronPDFライブラリを使用できます。サブストリングメソッドを使用して必要なテキストを抽出した後、IronPDFのRenderHtmlAsPdfのようなメソッドを使用してPDF文書を作成し、保存できます。

サブストリングメソッドの2つの主要な形式の違いは何ですか?

サブストリングメソッドには、Substring(int startIndex)Substring(int startIndex, int length)という2つの主要形式があります。前者は指定された開始インデックスから文字列の終わりまでを抽出し、後者は開始インデックスから特定の長さの文字を抽出します。

C#でサブストリングメソッドを使用する際にエラーを防ぐにはどうすればよいですか?

サブストリングメソッドのエラーを防ぐには、開始インデックスと長さが文字列の範囲内にあることを確認してください。無効なインデックスはArgumentOutOfRangeExceptionを引き起こす可能性があります。メソッドを呼び出す前にインデックスを必ず検証してください。

配列要素にサブストリングメソッドを使用できますか?

はい、文字列の配列内の要素にサブストリングメソッドを適用できます。配列を反復することで、サブストリングメソッドを使用して各文字列要素の特定の部分を抽出できます。

IronPDFはサブストリングメソッドとどのように統合されていますか?

IronPDFは最初にサブストリングを使用して文字列から必要なテキストを抽出し、その後IronPDFがこの抽出したテキストをPDFに変換することで統合されています。これはフォーマットされたレポートやドキュメントを生成するのに役立ちます。

サブストリングメソッドを現実のシナリオで使用する例は何ですか?

サブストリングメソッドを使用した現実の例として、URLやメールからユーザーIDを抽出することがあります。たとえば、userEmail.Substring(0, userEmail.IndexOf('@'))を使ってメールアドレスのユーザーネーム部分を抽出します。

サブストリングメソッドを使用する際にインデックスをどのように検証しますか?

サブストリングメソッドを使用する前に、startIndexが非負であり、文字列の長さ未満であることを確認してください。また、startIndexlengthの合計が文字列の総長を超えないようにして例外を回避します。

サブストリングメソッドを理解することはなぜ開発者にとって重要ですか?

サブストリングメソッドを理解することは、プログラミングで共通のタスクである文字列操作に不可欠であり、開発者にとって重要です。サブストリングの習得はデータの抽出や変換など、テキストデータの効率的な処理と操作を可能にします。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。