[VB.NET]Splitでの文字列分割方法を学ぼう
![[VB.NET]Splitでの文字列分割方法を学ぼう](/dotnet/column/wp-content/uploads/2019/12/vbnet.jpg)
- システム
エンジニア - VB.NETで文字列を分割するにはどうすればいいのですか。
- プロジェクト
マネージャー - 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
|
- システム
エンジニア - Split関数を使って指定文字(デリミタ)での文字列の分割方法についてよくわかりました。
- プロジェクト
マネージャー - 今回ご紹介したその他の文字列の分割方法についても参考にしてください。
まとめ
いかがでしたでしょうか。Split関数を使えば、指定文字(デリミタ)で文字列を分割できます。
VB.NETでのSplit関数の基本的な使い方から、分割上限数の指定方法、複数分割文字の指定方法、大文字小文字を無視した分割方法、正規表現での分割方法について紹介しました。
ぜひご自身でVB.NETのソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)