#author("2019-12-21T21:07:55+09:00","","") #navi(../) * 文字列を1文字の区切り文字で分割する方法 [#ad4f61cb] 文字列をある区切り文字を使って分割し配列に格納したい場合のサンプルコードを紹介します。 #htmlinsert(windev-top.html) #contents * 参考記事 [#u3375ad8] -[[Microsoft|.NET String.Split メソッド>https://docs.microsoft.com/ja-jp/dotnet/api/system.string.split?view=netframework-4.8]] * 動作環境 [#v8729cff] -Windows 10 ver.19.09 -Visual Studio 2019 -.NET Core -コンソールアプリケーション * 区切り文字で分割するサンプルコード [#e426f554] 以下に C#, Visual Basic(VB) でSplitメソッドを使ったサンプルコードを紹介します。 ** C# [#v0cc67e6] 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) [#b6b722d1] 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 ** 実行結果 [#gf6124e3] 上記サンプルコードを実行した時の出力になります。 #ref(01.png) * StringBuilderをSplitする方法 [#z32d2686] 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メソッドのサンプルコードでした。 #htmlinsert(windev-btm.html)