VB.NETのSubstringって何だろう?
どうやって使えばいいのだろうか?
Substringは関数の一つです!
関数は知ってるか知らないかの問題になってきます。
これを機会に少しずつ知っている関数を増やしていきましょう!
本記事では、VB.NETのSubstring関数の使い方を具体例を含めて解説します。
VB.NETのSubstring関数の使い方を知りたい方はぜひ参考にしてみてください。
【VB.NET】Substring関数とは
Substringは、String型の変数に格納された文字列に対して、部分的に文字列を切り出すことができる関数です。
Microsoft公式ドキュメントでは以下のようになっています。
String.Substring メソッド
https://learn.microsoft.com/ja-jp/dotnet/api/system.string.substring?view=net-8.0
- 定義
インスタンスから部分文字列を取得します。このメンバーはオーバーロードされます。
- 名前空間
System
オーバーロードされるとはどういうこと?
見慣れない言葉ですよね
オーバーロードとは、定義した関数の名前が全く同じでも、引数のデータ型や数などに応じて使い分けることができる仕組みのことです。多重定義と訳されたりします。
Substring関数では、オーバーロードを利用した同名の関数が2つあり、指定する引数の数によって区別できます。
- Substring( Integer型の引数の値 )
- 引数で指定した開始位置から末尾までの文字列を取得する
- Substring( Integer型の引数の値 , Integer型の引数の値 )
- 引数1で指定した開始位置から引数2で指定した文字数を取得する
例えば、引数を一つのみ指定した場合は①のSubstring関数が使用されます。
【VB.NET】Substring関数の使い方
Substring( Integer型の引数の値 )
- 文字列の中で引数に応じた開始位置から末尾までの部分を切り出します。
- 引数に渡す値は「0」以上の数値となります。
文字位置は「0」から数えることに注意してください!
*例えば、1文字目から指定したい場合はSubstring( 0 )となります。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえお" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'引数に「3」を指定して取得する
pickText = sampleText.Substring(3) '「えお」となる
'引数に「1」を指定して取得する
pickText = sampleText.Substring(1) '「いうえお」となる
'文字列の長さより大きい開始位置を指定してみる
pickText = sampleText.Substring(100) '例外ArgumentOutOfRangeExceptionが発生
'開始位置に負の数を指定してみる
pickText = sampleText.Substring(-1) '例外ArgumentOutOfRangeExceptionが発生
Substring( Integer型の引数の値1 , Integer型の引数の値2 )
- 第1引数と第2引数に応じた文字列を切り出します。
- 引数に渡す値は「0」以上の数値となります。
- 第1引数には、開始位置を指定します。
- 第2引数には、切り出したい文字数を指定します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'引数に「3,4」を指定して取得する
pickText = sampleText.Substring(3,4) '「えおかき」となる
'引数に「0,2」を指定して取得する
pickText = sampleText.Substring(0,2) '「あい」となる
【VB.NET】Substring関数でできること
文字列の先頭から指定した文字数分を切り出す
Substring関数を用いて文字列の先頭から途中までの文字を切り出すことができます。
第1引数は「0」で固定し、第二引数には切り出す文字数を指定します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'先頭の「あ」から数えて7文字分を切り出す
pickText = sampleText.Substring(0,7) '「あいうえおかき」となる
文字列の末尾から指定した文字数分を切り出す
Substring関数を用いて文字列の末尾から途中までの文字を切り出すことができます。
第1引数には、文字列全体の長さ – 切り出す文字数の算出結果を指定します。
こうすることで、末尾から数えた時の文字数となるように開始位置を指定できます。
第2引数は、切り出す文字数を渡します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'末尾の「こ」から数えて4文字分を切り出す
pickText = sampleText.Substring(sampleText.Length - 4,4) '「きくけこ」となる
注意点が1つあります。
「文字列の途中から末尾までの文字を切り出すことと同じではないか」と思い、Substring(切り出し始める文字位置)で代用できるのではないかと思うかもしれませんが、これはどの処理やプログラムで利用するのかでNGの場合があります。
例えば、何回やっても必ず切り出す文字数が同じとなるようにしたい場合は、Substring(切り出し始める文字位置)では切り出した結果の文字数が同じにならない場合があるので代用できません。
文字列の途中から指定した文字数分を切り出す
Substring関数を用いて文字列の途中から指定した文字数分を切り出すことができます。
第1引数には、切り出し始めたい文字位置を指定し、第2引数には切り出したい文字数を指定します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'途中の「う」から数えて5文字分を切り出す
pickText = sampleText.Substring(2,5) '「うえおかき」となる
【VB.NET】Substring関数以外で文字列を切り出す関数
文字列を切り出すことができる関数は、Substring関数以外にもあります。
代表的な関数としては、Right関数、Left関数、Mid関数です。
Right関数
末尾(右側)から指定した文字数分の文字を切り取る関数です。
使い方としては、第1引数に対象の文字列を指定し、第2引数に右から切り出す文字数を指定します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
pickText = String.Right(sampleText,1) '「こ」となる
pickText = String.Right(sampleText,2) '「けこ」となる
pickText = String.Right(sampleText,3) '「くけこ」となる
Left関数
先頭(左側)から指定した文字数分の文字を切り取る関数です。
使い方としては、第1引数に対象の文字列を指定し、第2引数に左から切り出す文字数を指定します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
pickText = String.Left(sampleText,1) '「あ」となる
pickText = String.Left(sampleText,2) '「あい」となる
pickText = String.Left(sampleText,3) '「あいう」となる
Mid関数
文字列の途中から指定した文字数分の文字を切り取る関数です。
使い方としては、第1引数に対象の文字列を指定し、第2引数に切り出し始める文字位置を指定します。
第3引数には切り出したい文字数を指定します。
文字位置は「1」から数えることに注意してください!
*Substring関数は「0」から数えます
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
pickText = String.Mid(sampleText,1,1) '「あ」となる
pickText = String.Mid(sampleText,3,2) '「うえ」となる
pickText = String.Mid(sampleText,5,3) '「おかき」となる
まとめ
本記事では、VB.NETのSubstringの使い方を解説しました!
Substringは、対象の文字列全体に対して部分的に文字列を取得できる関数です。
引数で指定した数値の内容に沿った形で文字列取得がされます。
最後に今回のおさらいをしておきましょう。
VB.NETに限らずどのプログラミング言語でも、関数を知らないと使ってみようと思う発想も出てこないと思いますし、他人が作ったプログラムの解析にも時間を要すると思います。
これを機に、皆さんの知識が少しでも増えていくことを応援しています!