String.Splitで空要素を残す、空要素を削除するオプションについて †String.Splitを使って分割した時、空要素はいらない!または、空っぽの要素も必要!の場合は、 以下にC#とVisual Basicのサンプルコードと動作結果を紹介します。 関連サイト †動作確認環境 †
StringSplitOptions 列挙型 について †サンプルコードを紹介する前に、StringSplitOptions 列挙型について説明します。
よって、StringSplitOptions.None を指定すれば空要素は残ります。 サンプルコード †以下に C#, Visual Basic のサンプルコードと実行結果を記します。 C# †using System; class Program { static void Main(string[] args) { string str = "a,b,c,,e,,g"; Console.WriteLine("- StringSplitOptions.None"); string[] split1 = str.Split(",", StringSplitOptions.None); Console.WriteLine("要素数:" + split1.Length); string join1 = string.Join(",", split1); // 配列に格納された要素をカンマ区切り文字列にする Console.WriteLine(join1); Console.WriteLine("- StringSplitOptions.RemoveEmptyEntries"); string[] split2 = str.Split(",", StringSplitOptions.RemoveEmptyEntries); Console.WriteLine("要素数:" + split2.Length); string join2 = string.Join(",", split2); // 配列に格納された要素をカンマ区切り文字列にする Console.WriteLine(join2); } } Visual Basic †Imports System Module Program Sub Main(args As String()) Dim str As String = "a,b,c,,e,,g" Console.WriteLine("- StringSplitOptions.None") Dim split1 As String() = str.Split(",", StringSplitOptions.None) Console.WriteLine("要素数:" & split1.Count) Dim join1 As String = String.Join(",", split1) '配列に格納された要素をカンマ区切り文字列にする Console.WriteLine(join1) Console.WriteLine("- StringSplitOptions.RemoveEmptyEntries") Dim split2 As String() = str.Split(",", StringSplitOptions.RemoveEmptyEntries) Console.WriteLine("要素数:" & split2.Count) Dim join2 As String = String.Join(",", split2) '配列に格納された要素をカンマ区切り文字列にする Console.WriteLine(join2) End Sub End Module 実行結果 †上記のサンプルコードを実行した時の出力になります。 以上、String.Splitを使って分割するときに、空要素を残す、空要素を削除する方法を指定できる |