悩んでる人VB.NETのSubstringって何だろう?



どうやって使えばいいのかな?
ど忘れしちゃった!!
なんてこともありますよね
これを機会にSubstring関数を
おさらいしましょう!
本記事では、VB.NETのSubstring関数の使い方を具体例を含めて解説します。
使い方をサクッと確認したい方は、ぜひ参考にしてみてください。
- VB.NETのSubstring関数とは何か
- Substring関数の一般的な使い方
- 実務でよく見るSubstringの具体的な使い方
- Substringと用途が似ている関数について


- システムエンジニア10年目
- 会社員3年⇒フリーランス7年目
- 保険系 / 物流系 / 鉄道系 / 小売系などのシステム開発に従事
コチラ
【VB.NET】Substring関数とは


Substringは、対象の文字列に対して、部分的に文字列を切り出すことができる関数です。
参考程度ですが、Microsoft公式ドキュメントでは以下のように説明されています。
String.Substring メソッド
https://learn.microsoft.com/ja-jp/dotnet/api/system.string.substring?view=net-8.0
- 定義
インスタンスから部分文字列を取得します。このメンバーはオーバーロードされます。
- 名前空間
System



オーバーロードって何だろう?
見慣れない言葉ですよね
オーバーロードとは、定義した関数名が全く同じでも、引数の数やデータ型などに応じて使い分けることができる仕組みのことです。
多重定義と訳されたりします。
基本的に、同一名の関数を重複定義できません。
オーバーロードであれば、引数違いで重複定義できるのです!
Substring関数では、オーバーロードを利用した2つの同名関数があり、指定する引数の数によって自動判別されます。
引数はカッコの中に書くやつですね
2つのSubstring関数については、次で説明しますね!
【VB.NET】Substring関数の使い方


SubString関数では、2種類あります。
- Substring( 開始位置 )
- 開始位置から末尾までの文字列を切り出す
- Substring( 開始位置 , 文字数 )
- 開始位置から指定した文字数分を切り出す
2つの違いは、引数の数です。
①の引数は「開始位置」のみ、②の引数は「開始位置」と「文字数」を指定します。
それぞれ、使い方を紹介しますね!
Substring( 開始位置 )の使い方


- かっこの中で指定した数値が開始位置を意味し、指定した開始位置から末尾までの部分を切り出します。
- 原則として、引数に渡す値は「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( 開始位置 , 文字数 )の使い方


- かっこの中で指定した開始位置と文字数に応じた文字列を切り出します。
- 引数に渡す値は「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」で固定し、第2引数には切り出す文字数を指定します。
Substring( 0 , 切り出す文字数 )
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'先頭の「あ」から数えて7文字分を切り出す
pickText = sampleText.Substring(0,7) '「あいうえおかき」となる文字列の末尾から指定した文字数分を切り出す
Substring関数を用いて文字列の末尾から途中までの文字を切り出すことができます。
Substring( 文字列の長さ – 切り出す文字数 , 切り出す文字数 )
第1引数には、文字列全体の長さ – 切り出す文字数の算出結果を指定します。
こうすることで、末尾から数えた時の文字数となるように開始位置を指定できます。
第2引数は、切り出す文字数を渡します。
具体的な使用例は以下のとおりです。
Dim sampleText As String = "あいうえおかきくけこ" '元の文字列
Dim pickText As String = "" '切り出し後の文字列
'末尾の「こ」から数えて4文字分を切り出す
pickText = sampleText.Substring(sampleText.Length - 4,4) '「きくけこ」となる


文字列の途中から末尾までの文字を切り出すのと同じじゃないかな?



それなら、Substring(切り出し始める文字位置)でもいい気がするけど。。
その疑問はとても自然です。
これは、どの処理なのか、どのプログラムで利用するのかでNGの場合があります。
例えば、必ず切り出す文字数を同じにしたいケース。
Substring(切り出し始める文字位置)では、切り出した結果の文字数が同じにならない可能性が出てきます。
文字列の途中から指定した文字数分を切り出す
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関数
右端から指定した文字数分を切り取る関数です。
Right( 第1引数 , 第2引数 )
使い方としては、第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関数
左端から指定した文字数分を切り取る関数です。
Left( 第1引数 , 第2引数 )
使い方としては、第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関数
文字列の途中から指定した文字数分を切り取る関数です。
Mid( 第1引数 , 第2引数 , 第3引数 )
使い方としては、第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に限らずどのプログラミング言語でも、関数を知らないと使ってみようと思う発想も出てこないと思いますし、他人が作ったプログラムの解析にも時間を要すると思います。
これを機に、皆さんの知識が少しでも増えていくことを応援しています!

