【VB.NET】Substringの使い方をサンプル付きで徹底解説!

悩んでる人

VB.NETのSubstringって何だろう?

悩んでる人

どうやって使えばいいのかな?

おしけん

ど忘れしちゃった!!
なんてこともありますよね

おしけん

これを機会にSubstring関数を
おさらいしましょう!

本記事では、VB.NETのSubstring関数の使い方を具体例を含めて解説します。

使い方をサクッと確認したい方は、ぜひ参考にしてみてください。

この記事で分かること
  • VB.NETのSubstring関数とは何か
  • Substring関数の一般的な使い方
  • 実務でよく見るSubstringの具体的な使い方
  • Substringと用途が似ている関数について
この記事を書いた人
  • システムエンジニア10年目
  • 会社員3年⇒フリーランス7年目
  • 保険系 / 物流系 / 鉄道系 / 小売系などのシステム開発に従事

Substringの使い方をすぐに知りたい方は、
コチラ
おしけん

独学に限界を感じていませんか?

経験豊富な現役エンジニアがサポートさせていただきます!

  • 現役エンジニアによる相談対応!
  • プログラミング講師が丁寧にサポート!
  • 学習の悩みと卒業できる!
目次

【VB.NET】Substring関数とは

Substringは、対象の文字列に対して、部分的に文字列を切り出すことができる関数です。

参考程度ですが、Microsoft公式ドキュメントでは以下のように説明されています。

String.Substring メソッド

定義

インスタンスから部分文字列を取得します。このメンバーはオーバーロードされます。

名前空間

System

https://learn.microsoft.com/ja-jp/dotnet/api/system.string.substring?view=net-8.0
悩んでる人

オーバーロードって何だろう?

おしけん

見慣れない言葉ですよね

オーバーロード

オーバーロードとは、定義した関数名が全く同じでも、引数の数やデータ型などに応じて使い分けることができる仕組みのことです。

多重定義と訳されたりします。

基本的に、同一名の関数を重複定義できません。

オーバーロードであれば、引数違いで重複定義できるのです!

Substring関数では、オーバーロードを利用した2つの同名関数があり、指定する引数の数によって自動判別されます。

おしけん

引数はカッコの中に書くやつですね

2つのSubstring関数については、次で説明しますね!

【VB.NET】Substring関数の使い方

SubString関数では、2種類あります。

2つのSubstring関数
  • 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に限らずどのプログラミング言語でも、関数を知らないと使ってみようと思う発想も出てこないと思いますし、他人が作ったプログラムの解析にも時間を要すると思います。

これを機に、皆さんの知識が少しでも増えていくことを応援しています!

おしけん

独学に限界を感じていませんか?

経験豊富な現役エンジニアがサポートさせていただきます!

  • 現役エンジニアによる相談対応!
  • プログラミング講師が丁寧にサポート!
  • 学習の悩みと卒業できる!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次