どうも!リョクちゃです。
今回も与えられた文字列内の任意情報を抽出する方法を紹介していきます。
これまでにMid関数やLeft関数、Right関数を使用した文字列内情報の抽出の方法や
考え方を紹介し、各関数の使い方を例を交えて解説していきました。
今回はStringクラスで提供されているSubstringメソッドを使用して
文字列内の任意情報を抽出していきます。
ちなみに過去の文字列内情報に関する記事はこちら
目次
Substring関数
この関数は、以下の記述で使用することができます。
イメージとしては以下のようになります。
コードで書くと、
1 2 |
Dim fruit As String = "Apple".Substring(3,1) ' l がfruit変数に代入される |
準備編:フォームの作成
フォームについては、前回作成したフォームを再利用します。
実行環境
筆者の実行環境は、
- VisualStudio2019
- Windows 10 64bit
- .Net Framework 4.5.1
になります。
※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。
アプリケーションの目的
適当な入力値を入力し、ボタンを押すことでそれぞれ指定の位置から情報を抽出し、
それぞれ抽出した情報を表示することを目的とします。
ただし、Substringメソッドを使用して行えるコードとする。
プログラム編
それではプログラムを作成していきます。
まずは、フォームデザイン上でボタンコントロールをダブルクリックし、
コードビューにボタンイベントを作成します。
1 2 3 4 5 6 7 |
Public Class TestMid Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click End Sub End Class |
入力値ボックスに入力がされていれば処理をするようにします。
1 2 3 4 5 6 7 8 |
Public Class TestMid Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 入力値があれば If Me.TextBox1.Text <> "" Then End Sub End Class |
ここからは抽出するための準備をしていきます。
考え方としては、前回の記事と同じになりますので、コードのみを変えていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Public Class TestMid Private Const PlaceCode As Integer = 3 ' 所在地コード Private Const TeleCode As Integer = 10 ' 電話番号コード Private Const NameCode As Integer = 5 ' 氏名コード Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 入力値があれば If Me.TextBox1.Text <> "" Then ' Left関数とRight関数を使って抽出してみる。 Dim place As String = Me.TextBox1.Text.Substring(0, PlaceCode) Dim tele As String = Me.TextBox1.Text.Substring(PlaceCode, TeleCode) Dim name As String = Me.TextBox1.Text.Substring(PlaceCode + TeleCode, NameCode) ' テキストボックスへ出力 Me.TextBox2.Text = place Me.TextBox3.Text = tele Me.TextBox4.Text = name End If End Sub End Class |
それぞれ、所在地コードを抽出する場合は、
1 |
Me.TextBox1.Text.Substring(0, PlaceCode) |
開始位置を0番目として、文字列の長さにPlaceCodeの長さを引数として渡しています。
電話番号コードを抽出する場合は、
1 |
Me.TextBox1.Text.Substring(PlaceCode, TeleCode) |
所在地コードの長さを開始位置として、TeleCodeの長さを引数として渡しています。
そうすることで開始位置が3番目から、10の長さを抽出し結果を返します。
氏名コードを抽出する場合は、
1 |
Me.TextBox1.Text.Substring(PlaceCode + TeleCode, NameCode) |
所在地コードと電話番号コードの長さを足しわせた位置を開始位置として、
NameCodeの長さを引数として渡しています。
実行編
作成したコードを実行していきます。
ボタンを押すと、
まとめ
Substringメソッドを使用した文字列内の任意情報を抽出する
方法について考え方や使い方を解説しました。
を覚えておけばすぐに使用することができます。
文字列内の情報を抽出する方法としては様々な方法があります。
用途に応じて、自身が使いやすい方法で試していただければなと思います。
最後までご覧いただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。