.NET開発者のためのブログメディア
[VB.NET]Splitでの文字列分割方法を学ぼう
![[VB.NET]Splitでの文字列分割方法を学ぼう](/dotnet/column/wp-content/uploads/2019/12/vbnet-810x320.jpg)
- SE
- VB.NETで文字列を分割するにはどうすればいいのですか。
- PM
- Split関数を使えば、指定文字(デリミタ)で文字列を分割できます。
目次
[VB.NET]Splitでの文字列分割徹底解説
今回は、VB.NETでのSplitを使った文字列分割方法を紹介します。Split関数の基本的な使い方から、分割上限数の指定方法、複数分割文字の指定方法、大文字小文字を無視した分割方法、正規表現での分割方法について紹介します。
VB.NETでのファイル名取得に興味のある方はぜひご覧ください。
基本的な使い方
VB.NETでのSplitの基本的な使い方を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "red,green,blue"
' カンマで分割し、配列に格納
Dim myarray() As String = mystr.Split(",")
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。カンマで分割できていることが分かります。
1
2
3
|
red
green
blue
|
タブで分割するには、以下のように記述します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "red" + vbTab + "green" + vbTab + "blue"
' tabで分割し、配列に格納
Dim myarray() As String = mystr.Split(vbTab)
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。
1
2
3
|
red
green
blue
|
改行コードで分割するには、以下のように記述します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "red" + vbNewLine + "green" + vbNewLine + "blue"
' tabで分割し、配列に格納
Dim myarray() As String = mystr.Split(vbNewLine)
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。
1
2
3
|
red
green
blue
|
このようにVB.NETでは、Splitで文字列分割ができます。
分割上限数の指定
VB.NETでのSplitに第2引数を指定すると、分割上限数を指定できます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "red,green,blue"
' カンマで分割し、配列に格納
Dim myarray() As String = mystr.Split(CType(",", Char()), 2)
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green,blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。分割条件数に2を指定しているので、2つに分割されていることが分かります。
1
2
|
red
green,blue
|
このようにVB.NETでは、Splitで分割上限数を指定できます。
複数の区切り文字
VB.NETでのSplitには、分割文字を複数指定することもできます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "red,green blue.yellow"
' カンマ、半角スペース、コロンで分割し、配列に格納
Dim myarray() As String = mystr.Split(New [Char]() {",", " ", "."})
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green blue yellow
Next
return 0
End function
end class
|
実行結果は以下のようになります。複数の区切り文字でも分割できることが分かります。
1
2
3
4
|
red
green
blue
yellow
|
大文字小文字
VB.NETにて、大文字小文字を無視した分割方法について紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "RED_delim_green_DELIM_blue"
' 大文字小文字を無視して、配列に格納
Dim myarray() As String = mystr.ToLower().Split("_delim_")
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。
1
2
3
|
red
green
blue
|
ToLowerで全文字列を小文字に変換していますので、デリミタ以外も小文字に変換されてしまいます。正規表現を使えばこれを解決できます。
正規表現
VB.NETにて、正規表現を使用した分割方法について紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Imports System.Text.RegularExpressions
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "red0green1blue"
' 正規表現(数字)で分割し、配列に格納
Dim myarray() As String = Regex.Split(mystr, "[0-9]")
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' red green blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。
1
2
3
|
red
green
blue
|
RegexOptions.IgnoreCaseを使用すれば、大文字小文字を無視した分割ができます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Imports System.Text.RegularExpressions
public class compiler
shared function Main as integer
' 変数宣言
Dim mystr As String = "RED_delim_green_DELIM_blue"
' 正規表現で大文字小文字を無視して、配列に格納
Dim myarray() As String = Regex.Split(mystr, "_delim_", RegexOptions.IgnoreCase)
' 配列の表示
For Each item As String In myarray
Console.WriteLine(item) ' RED green blue
Next
return 0
End function
end class
|
実行結果は以下のようになります。
1
2
3
|
RED
green
blue
|
- SE
- Split関数を使って指定文字(デリミタ)での文字列の分割方法についてよくわかりました。
- PM
- 今回ご紹介したその他の文字列の分割方法についても参考にしてください。
まとめ
いかがでしたでしょうか。Split関数を使えば、指定文字(デリミタ)で文字列を分割できます。
VB.NETでのSplit関数の基本的な使い方から、分割上限数の指定方法、複数分割文字の指定方法、大文字小文字を無視した分割方法、正規表現での分割方法について紹介しました。
ぜひご自身でVB.NETのソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
reccomended おすすめ記事
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)