このエントリーをはてなブックマークに追加


文字列を1文字の区切り文字で分割する方法

文字列をある区切り文字を使って分割し配列に格納したい場合のサンプルコードを紹介します。

参考記事

動作環境

  • Windows 10 ver.19.09
  • Visual Studio 2019
  • .NET Core
  • コンソールアプリケーション

区切り文字で分割するサンプルコード

以下に C#, Visual Basic(VB) でSplitメソッドを使ったサンプルコードを紹介します。

C#

using System;

class Program
{
    static void Main(string[] args)
    {
        String win = @"Windows10,Windows8.1,Windows8,Windows7,WindowsXP,Windows2000,WindowsNT4.0";
        String[] sep1 = win.Split(",");
        for(int i=0; i<sep1.Length; i++)
        {
            Console.WriteLine("{0} : {1}", i, sep1[i]);
        }

        String os = "Windows,Linux|macOS#Android\tiOS";
        char[] charSeparators = new char[] { ',','|','#','\t' };
        String[] sep2 = os.Split(charSeparators);
        for (int i = 0; i < sep2.Length; i++)
        {
            Console.WriteLine("{0} : {1}", i, sep2[i]);
        }
    }
}

Visual Basic(VB)

Imports System

Module Program
    Sub Main(args As String())
        Dim win As String = "Windows10,Windows8.1,Windows8,Windows7,WindowsXP,Windows2000,WindowsNT4.0"
        Dim sep1 As String() = win.Split(",")

        For i As Integer = 0 To sep1.Length - 1
            Console.WriteLine("{0} : {1}", i, sep1(i))
        Next

        Dim os As String = "Windows,Linux|macOS#Android" & vbTab & "iOS"
        Dim charSeparators As Char() = New Char() {","c, "|"c, "#"c, vbTab}
        Dim sep2 As String() = os.Split(charSeparators)

        For i As Integer = 0 To sep2.Length - 1
            Console.WriteLine("{0} : {1}", i, sep2(i))
        Next
    End Sub
End Module

実行結果

上記サンプルコードを実行した時の出力になります。

01.png

StringBuilderをSplitする方法

StringBuilderには、Splitメソッドがありません。
以下のようにToStringメソッドでStringに変換すればSplitメソッドを使うことができます。

  • C#
    System.Text.StringBuilder sb = new System.Text.StringBuilder("Windows10,Windows8.1,Windows8,Windows7,WindowsXP,Windows2000,WindowsNT4.0");
    string[] win = sb.ToString().Split(",");
  • Visual Basic(VB)
    Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder("Windows10,Windows8.1,Windows8,Windows7,WindowsXP,Windows2000,WindowsNT4.0")
    Dim win As String() = sb.ToString().Split(",")

以上、文字列を区切り文字で分割しStringの配列に格納するSplitメソッドのサンプルコードでした。


添付ファイル: file01.png 199件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-12-21 (土) 21:08:12