VB.NET 部分文字列メソッドと例

⚡ スマートサマリー

VB.Net サブストリング例trac開始インデックスとオプションの長さを指定することで、文字列の一部を取得します。このメソッドはStringクラスに属し、0から文字を数え、元の文字列を変更せずに新しい文字列を返します。

  • 🔢 ゼロベースのインデックス: Substring メソッドはインデックス 0 から文字数を数えるため、文字列の最初の文字は位置 0 に位置します。
  • ☑️ 2つの過負荷: 引数を1つ渡すと、そのインデックス以降のすべてが返され、引数を2つ渡すと、固定数の文字が返されます。
  • ✂️ Extrac位置によるt: Substring を IndexOf または LastIndexOf と組み合わせて、特定の文字の前後のテキストを取得します。
  • ⚠️ 安全なインデックス作成: 負の値または範囲外のインデックスを指定すると、ArgumentOutOfRangeException がスローされるため、メソッドを呼び出す前に値を検証してください。
  • 🔤 不変の結果: substring は新しい文字列を返し、元の文字列は変更されません。これは .NET の文字列の不変性と一致します。
  • 🤖 AI支援: GitHub CopilotとIntelliCode Visual Studio 2026 では、入力時に適切な Substring 呼び出しを提案し、範囲外のインデックスを警告します。

VB.Net サブストリング

部分文字列とは何ですか?

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)ツールバーの「開始」ボタンをクリックしてコードを実行します。以下の結果が表示されるはずです。

VB.Net サブストリングの例の出力

以下のコードを使用しました。

VB.Net サブストリングのコード例

の説明 Code:

  1. Module1 という名前のモジュールを作成します。
  2. メインのサブプロシージャを開始します。
  3. st という名前の文字列変数を定義し、値を代入する Guru99まで。
  4. 文字列変数「subst」を、文字列「st」のインデックス0から始まる長さ4文字の部分文字列として定義します。
  5. いくつかのテキストと上記の部分文字列をコンソールに表示します。
  6. コンソール ウィンドウをしばらく一時停止し、ユーザーがコンソール ウィンドウを閉じる操作を行うのを待ちます。
  7. メインのサブプロシージャの終了。
  8. モジュールの終わり。

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

[開始] ボタンをクリックしてコードを実行します。次の結果が返されます。

VB.Net サブストリングを引数1つで指定する

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

ツールバーの [開始] ボタンをクリックしてコードを実行します。次の結果が得られます。

VB.Net 部分文字列の中間文字

上記の例では、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

[開始] ボタンをクリックしてコードを実行します。次の結果が得られます。

VB.Net サブストリングの単一文字出力

以下のコードを使用しました。

VB.Net サブストリング 単一文字コード

の説明 Code:

  1. Module1 という名前のモジュールを作成します。
  2. メインのサブプロシージャを開始します。
  3. st という名前の文字列変数を定義し、値を代入する Guru99まで。
  4. mid1 という名前の文字列変数を定義し、String st のインデックス 1 にある文字を取得します。 この文字は変数mid1に割り当てられます。
  5. 上記の文字をコンソールに表示します。
  6. mid2 という名前の文字列変数を定義し、文字列 st からインデックス 1、長さ 1 の文字を取得します。 長さ 1 は、開始インデックスで同じ文字を返すことを意味します。 カウントは、指定した開始インデックスから始まります。 この文字は変数mid2に割り当てられます。
  7. 上記の文字をコンソールに表示します。
  8. コンソール ウィンドウをしばらく一時停止し、ユーザーがコンソール ウィンドウを閉じる操作を行うのを待ちます。
  9. メインのサブプロシージャの終了。
  10. モジュールの終わり。

慣れてきたら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 プロジェクトの保守のために使用してください。

よくあるご質問

はい。Substring メソッドはゼロベースなので、文字列の最初の文字はインデックス 0、2 番目の文字はインデックス 1 、といった具合になります。開始位置を計算する際には、ゼロから数えることが重要です。

いいえ。VB.Net の文字列は不変なので、Substring メソッドは元の文字列を変更することはありません。このメソッドは、元の文字列を含む新しい文字列を返します。trac文字が削除される一方、元の文字列は元の値を変更せずに保持されます。

部分文字列例tracインデックスと長さを使用して、文字列の連続した部分を取得します。 スプリット 文字列を、カンマやスペースなどの区切り文字がある箇所で、より小さな文字列の配列に分割します。リストには Split 関数を、スライスには Substring 関数を使用してください。

長さ0を渡すと、Nothingではなく空の文字列("")が返されます。開始インデックスが文字列の範囲内であれば、この呼び出しは有効であり、例外は発生しません。

substring メソッドは、指定した文字列の部分を保持し、残りの部分を破棄します。remove メソッドはその逆で、指定したインデックスから始まる文字を削除し、残った文字列を返します。これらは相補的な操作です。

はい。Substring メソッドが開始インデックスと長さを計算する際、スペース、タブ、句読点はそれぞれ 1 文字としてカウントされます。文字列内のすべての位置(空白文字を含む)がカウント対象となり、表示されている文字だけではありません。

Yes. GitHubコパイロット Visual Studio 2026 では、例えば、平易な英語のコメントがtracカンマの前のテキストをIndexOf関数を使ったSubstring呼び出しに変換します。生成されたインデックスが範囲内に収まっていることを必ず確認してください。

はい。Visual Studio 2026 は GitHub Copilot と インテリCode 範囲外のインデックスを警告し、正しい引数を提案し、入力時にSubstring呼び出しを完了します。ping プログラムを実行する前に、ArgumentOutOfRangeException を防止します。