【スポンサーリンク】

【VB.NET】超簡単にSubstringで文字列を切り出す(先頭・末尾から切り出す)

VB.NETで文字列を切り出す方法です。Substringメソッドを使います。末尾から切り出す方法も紹介します。

【スポンサーリンク】

Substringメソッドを使って文字列を切り出す

VB.NETで文字列を切り出す時、Substringメソッドを使います。

Substringメソッドは引数を1つ指定する場合と2つ指定する場合があり、機能が少しだけ違います。

  • 引数1つの場合:指定した文字位置から末尾まで切り出す
  • 引数2つの場合:第1引数で指定した文字位置から、第2引数で指定した文字数分切り出す

文字で書かれても良く分からないと思いますので、実際にサンプルプログラムを作って動きを確認しましょう。

画面はこんな感じです。

上の段のテキストボックスとボタンは、Substringメソッドの引数が1つ、下の段のテキストボックスとボタンはSubstringメソッドの引数が2つの動きを見ます。

本来は数値チェック処理を入れるべきですが、Substringメソッドのサンプルプログラムのため、チェック処理は省略しています。

引数が1つの場合

Substringメソッドの引数が1つの場合、引数に渡した数値の文字位置から末尾までを切り出します

引数に渡す値は「0」からスタートです。

サンプルコードはこちら。

Private Sub cmdSubstring1_Click(sender As Object, e As EventArgs) Handles cmdSubstring1.Click
    '切り出し開始位置の文字列をInteger型に変換
    Dim iStarIndex As Integer = Integer.Parse(txtSubstring1Index.Text)

    '切り出し開始位置から末尾まで文字列を切り出し(0始まり)
    txtSubstring1After.Text = txtSubstring1Before.Text.Substring(iStarIndex)
End Subこれr引数が2つの場合

これを実行します。

とりあえず入力値を「東京都」、切り出し開始位置を「1」にして実行ボタンを押下します。

結果は「京都」が切り出されます。

インデックス番号と文字列・切り出し対象の表としては次の様になります。

インデックス番号 0 1 2
文字
切り出し対象 ×

ただし、注意が必要で、引数に渡す数字が0未満か、文字列の長さをオーバーした場合は、ArgumentOutOfRangeExceptionが発生するので、事前チェックを入れる必要があります。

引数が2つの場合

Substringメソッドの引数が2つの場合、第一引数と第二引数はこのようになっています。

  • 第一引数:開始位置(0スタート)
  • 第二引数:切り出し文字数(1スタート)

サンプルコードはこちら。

Private Sub cmdSubstring2_Click(sender As Object, e As EventArgs) Handles cmdSubstring2.Click
    '切り出し開始位置の文字列をInteger型に変換
    Dim iStarIndex As Integer = Integer.Parse(txtSubstring2Index.Text)
    '切り出し文字数の文字列をInteger型に変換
    Dim iLength As Integer = Integer.Parse(txtSubstring2Length.Text)

    '切り出し開始位置から指定した文字数の文字列を切り出し
    txtSubstring2After.Text = txtSubstring2Before.Text.Substring(iStarIndex, iLength)
End Sub

これを実行します。

結果は「特許」が切り出されます。

インデックス番号と文字列・切り出し対象の表としては次の様になります。

インデックス番号 0 1 2 3 4 5 6
文字
切り出し対象 × × × × ×

これも注意が必要で、以下の場合に、ArgumentOutOfRangeExceptionが発生します。

  • 「第一引数の数値 + 第二引数の数値」が文字列の長さを上回る
  • 第一引数の数値 or 第二引数の数値が0未満

なので、こちらも事前チェックを入れる必要があります。

【スポンサーリンク】

先頭から文字列を切り出す

Substringを用いて先頭から文字列を切り出す場合は、次の様にSubstringを記述します。

文字列.Substring(0, 切り出す文字数)

先頭から文字列を切り出したいので、第一引数は「0」で固定し、第二引数で先頭から何文字切り出したいかを指定します。

サンプルコードはこちら。

Private Sub cmdSubstringFront_Click(sender As Object, e As EventArgs) Handles cmdSubstringFront.Click
    '切り出し文字数の文字列をInteger型に変換
    Dim iLength As Integer = Integer.Parse(txtSubstringFrontLength.Text)

    '切り出し開始位置から指定した文字数の文字列を切り出し
    txtSubstringFrontAfter.Text = txtSubstringFrontBefore.Text.Substring(0, iLength)
End Sub

例えば、先頭から3文字切り出したいとしましょう。画面にはこの様に入力しています。

実行すると…

先頭から3文字切り出されたことが分かります。

【スポンサーリンク】

文字列の末尾から文字を切り出す

Substringを用いて文字列の末尾から文字を切り出す場合は、次の様にSubstringを記述します。

文字列.Substring((文字列の長さ - 切り出したい文字数), 切り出したい文字数)

Substringの第一引数は先頭から数えるので、「文字列の長さ – 切り出したい文字数」を第一引数に渡します。

Substringの第二引数には、「切り出したい文字数」を渡します。

サンプルコードはこちら。

Private Sub cmdSubstringEnd_Click(sender As Object, e As EventArgs) Handles cmdSubstringEnd.Click
    '文字列の長さをInteger型に変換
    Dim iStrLength As Integer = txtSubstringEndBefore.Text.Length
    '切り出したい文字数
    Dim iLength As Integer = Integer.Parse(txtSubstringEndLength.Text)

    '切り出し開始位置から指定した文字数の文字列を切り出し
    txtSubstringEndAfter.Text = txtSubstringEndBefore.Text.Substring(iStrLength - iLength, iLength)
End Sub

実行してみます。末尾から3文字を切り出してみましょう。

実行すると…

「東京特許許可局」の末尾「許可局」の3文字を切り出すことが出来ました。

末尾の1文字だけ切り出したい場合は、

文字列.Substring((文字列の長さ - 1), 1)

とすると、末尾の文字だけ切り出すことが出来ます。

【スポンサーリンク】

参考リンク

String.Substring メソッド (System)
インスタンスから部分文字列を取得します。 このメンバーはオーバーロードされます。 構文、使用方法、例など、このメンバーの詳細については、オーバーロード リストで名前をクリックしてください。
【スポンサーリンク】

鉄道記事も書いてます!

ちょっとリフレッシュして鉄道記事も読んでみませんか?

鉄道記事バックナンバーはこちら↓

鉄道コム投稿記事一覧ページ