VB.NET 部分文字列メソッドと例
⚡ スマートサマリー
VB.Net サブストリング例trac開始インデックスとオプションの長さを指定することで、文字列の一部を取得します。このメソッドはStringクラスに属し、0から文字を数え、元の文字列を変更せずに新しい文字列を返します。
部分文字列とは何ですか?
Substring 関数は、指定された文字列の一部を取得するために使用されます。このメソッドは、String クラスで定義されています。 Microsoft VB.Net文字列の開始インデックスを指定する必要があります。tracted。文字列はexになりますtracそのインデックスから、指定した長さまでを抽出します。
元前tracテキストを解析する際には、Substring メソッドが想定する構文を理解すると役立ちます。
部分文字列の構文
この関数は、次の構文に示すように 2 つの引数を受け入れます。
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
ここでは、
- ByVal キーワードは、関数に引数を渡すメカニズムである値渡しを示します。
- start_Indexは、部分文字列を取得する開始インデックスです。
- sub_length は、start_Index から文字列がコピーされる長さを表します。この長さは文字数で測定されます。関数は、ex を返します。tracted サブストリング。
開始インデックスは0から始まるため、文字列の最初の文字は位置1ではなく位置0に配置されます。
構文を定義した上で、以下の例はコンソールアプリケーション内でSubstringメソッドがどのように動作するかを示しています。
例
ステップ1)新しいコンソールアプリケーションを作成します。
ステップ2)以下のコードを追加してください。
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
ステップ3)ツールバーの「開始」ボタンをクリックしてコードを実行します。以下の結果が表示されるはずです。
以下のコードを使用しました。
の説明 Code:
- Module1 という名前のモジュールを作成します。
- メインのサブプロシージャを開始します。
- st という名前の文字列変数を定義し、値を代入する Guru99まで。
- 文字列変数「subst」を、文字列「st」のインデックス0から始まる長さ4文字の部分文字列として定義します。
- いくつかのテキストと上記の部分文字列をコンソールに表示します。
- コンソール ウィンドウをしばらく一時停止し、ユーザーがコンソール ウィンドウを閉じる操作を行うのを待ちます。
- メインのサブプロシージャの終了。
- モジュールの終わり。
XNUMX つの引数
関数に引数を XNUMX つだけ渡した場合はどうなるでしょうか? この関数は、そのインデックスから始まる文字列内のすべてのデータをコピーします。 何が起こるかというと、Substring 関数は、そのインデックスにあるすべての文字列データと、そのインデックスに続く文字列データを内部的にコピーします。 例えば:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
[開始] ボタンをクリックしてコードを実行します。次の結果が返されます。
Substring 関数は 99 を返しました。関数にパラメータ 4 を渡したので、trac文字列のインデックス4の文字から末尾までの部分文字列を取得します。9は文字列のインデックス4の文字です。 Guru99、したがって元tracそこから始まった。
Substring メソッドは、単一のインデックスからのトリミングに加えて、文字列の中央にある文字を対象とすることもできます。
中文字
問題の文字列の中間の文字を取得することもできます。この場合、開始インデックスと必要な文字列の長さを指定するだけで済みます。次の例では、指定された文字列のインデックス 2 から部分文字列を取得しており、文字列の長さは 2 文字になります。
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
ツールバーの [開始] ボタンをクリックしてコードを実行します。次の結果が得られます。
上記の例では、Substring 関数は ru を返しました。関数にはパラメータ (2, 2) を渡しました。最初の 2 は、関数に ex の開始を指示します。tracインデックス 2 からの部分文字列の抽出ですが、2 番目の 2 は関数に長さ 2 文字の部分文字列のみを返すように指示します。これは、trac部分文字列の抽出は、文字列のインデックス 2 に位置する要素から開始する必要があります。 Guru99、つまりrです。返される部分文字列の長さは2文字のみである必要があるため、traction は「u」を超えて進まないため、「ru」が返されます。
XNUMX文字
Substring 関数を使用すると、文字列から 1 つの文字を取得できます。このような場合、割り当てを行う必要がありますが、文字に直接アクセスできます。この方が少し高速です。次の例は、これを実現する 2 つの方法を示しています。
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
[開始] ボタンをクリックしてコードを実行します。次の結果が得られます。
以下のコードを使用しました。
の説明 Code:
- Module1 という名前のモジュールを作成します。
- メインのサブプロシージャを開始します。
- st という名前の文字列変数を定義し、値を代入する Guru99まで。
- mid1 という名前の文字列変数を定義し、String st のインデックス 1 にある文字を取得します。 この文字は変数mid1に割り当てられます。
- 上記の文字をコンソールに表示します。
- mid2 という名前の文字列変数を定義し、文字列 st からインデックス 1、長さ 1 の文字を取得します。 長さ 1 は、開始インデックスで同じ文字を返すことを意味します。 カウントは、指定した開始インデックスから始まります。 この文字は変数mid2に割り当てられます。
- 上記の文字をコンソールに表示します。
- コンソール ウィンドウをしばらく一時停止し、ユーザーがコンソール ウィンドウを閉じる操作を行うのを待ちます。
- メインのサブプロシージャの終了。
- モジュールの終わり。
慣れてきたらtrac部分文字列を処理する必要がある場合、メソッドが発生させる可能性のあるエラーの処理方法を知っておくことは重要です。
よくある部分文字列エラーとその回避方法
Substring メソッドは、渡される値に対して厳密な制約があります。引数が文字列の範囲外になると、VB.Net は ArgumentOutOfRangeException をスローし、実行時にプログラムを停止します。このルールを理解することで、よくあるミスを回避できます。
このメソッドは、次の3つの状況で例外を発生させます。
- start_Indexは負の数です。
- start_Index は文字列の長さよりも大きい。
- start_Indexとsub_lengthの合計は、文字列の末尾を超えた位置を示します。
よくある間違いは、IndexOf 関数の結果を事前に確認せずに使用することです。IndexOf は文字が見つからない場合 -1 を返しますが、Substring に -1 を渡すと例外が発生します。以下のコードは、この間違いを防ぐためのものです。
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
呼び出し前にインデックスを検証することで、入力文字列に期待する文字が含まれていない場合でも、アプリケーションをスムーズに動作させることができます。
文字の前後の部分文字列を取得する
一般的なタスクはtrac特定の文字の前後にあるテキストを分割する、例えばメールアドレスを@記号で分割するといったことが可能です。VB.Netには専用の関数はありませんが、IndexOfとSubstringを組み合わせることで実現できます。
文字の前のテキスト: IndexOf を呼び出して文字の位置を特定し、そのインデックスを長さとして Substring に渡します。
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
このコードは、@記号より前の文字列部分である「guru99」を出力します。
文字の後のテキスト: インデックスに1を加え、部分文字列を文字列の末尾まで実行します。
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
これは example.com を返します。文字が複数回出現する場合は、IndexOf の代わりに LastIndexOf を使用して、最初の出現位置ではなく最後の出現位置から開始してください。
部分文字列関数と左、右、中央関数の比較
Visual Basic は、以前のバージョンから 3 つのレガシー文字列関数 (Left、Right、Mid) を継承しています。これらは、 Microsoft.VisualBasic名前空間は、従来のVBから来た開発者にとってより馴染みやすいものとなるでしょう。
- 左(文字列、n) 文字列の最初の n 文字を返します。
- 右(文字列、n) 文字列の最後の n 文字を返します。
- 中間(文字列、開始位置、長さ) 開始位置から一部を返します。Substring とよく似ています。
主な違いは、位置のカウント方法です。Mid 関数は 1 ベースなので、最初の文字は位置 1 に位置しますが、Substring メソッドは 0 ベースなので、0 からカウントを開始します。Substring は .NET の標準的なアプローチであり、すべての .NET 言語で同じように動作するため、新しいコードには推奨されます。Left、Right、および Mid は、古い Visual Basic プロジェクトの保守のために使用してください。






