.NET ヘルプ

C# 文字列分割(開発者向けの使い方)

更新済み 8月 29, 2023
共有:

プログラミングの初心者や成長中の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#

このオプションを使用すると、連続する区切り文字によって生成される空の配列要素が結果の配列から自動的に削除されます。

複数の区切り文字による分割

より複雑なシナリオでは、複数の文字を区切り文字として使用して文字列を分割する必要があるかもしれません。 次のような文字列があると想像してみてください: apple, banana, orange、これをセミコロンとパイプを区切り文字として分割したい場合。

これを達成するには、string.Splitを使用できます。()params char パラメーターを使用した method:

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#

これにより、applebananaorangeの3つの要素を持つ配列が生成されます。

サブストリングの数を制限する

場合によっては、文字列を限られた数の部分文字列に分割したいことがあります。 これは長い文字列を扱う場合や、特定のセグメント数にのみ関心がある場合に役立ちます。 String.Split 世では文字列を指定した区切り文字で分割するために使用されるメソッドです。このメソッドは、入力文字列を区切り文字として提供された文字、または文字列を使用してサブ文字列の配列に分割します。String.Split メソッドは多くのプログラミング言語に備わっており、非常に便利な機能です。

例えば、 C# で次のように使用します:

string sentence = "IronPDF,IronOCR,IronXL";
string[] words = sentence.Split(',');
string sentence = "IronPDF,IronOCR,IronXL";
string[] words = sentence.Split(',');
Dim sentence As String = "IronPDF,IronOCR,IronXL"
Dim words() As String = sentence.Split(","c)
VB   C#

このサンプルコードでは、カンマ区切りの文字列をそれぞれの部分("IronPDF"、"IronOCR"、"IronXL")に分割しています。()メソッドでは、生成する部分文字列の最大数を指定できます:

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 が含まれます。文字列の残りの部分 (four,five) 変更されていません。

文字列分割拡張機能の作成

組み込みの「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#開発者に力を与えるために設計された包括的なツールセットであり、さまざまな分野で高度な機能を提供します。 ドキュメント操作から光学文字認識まで (OCR (光学式文字認識))これらのライブラリは、現代の開発ツールキットの重要な要素です。 興味深いことに、それらはC#のString.Splitに関連する可能性があります。()C#における基本的な文字列操作関数である` method

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は最適なライブラリです。 開発者は、C#で文字列を操作するのと同じように、簡単にExcelファイルを読み書きおよび操作できます。

IronOCR: 光学文字認識(OCR)

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パッケージは、たった2つの個別製品の価格で購入できます。 このバンドルオファーは、開発ツールキットの機能を拡張するだけでなく、素晴らしい価値を提供します。

< 以前
C# ゲッター セッター (開発者向けの仕組み)
次へ >
.NET Core Polly(開発者向けの動作方法)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >