#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)


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS