String.Substring String.Substring String.Substring String.Substring Method

定義

インスタンスから部分文字列を取得します。Retrieves a substring from this instance.

このメンバーはオーバーロードされます。This member is overloaded. 構文、使用方法、例など、このメンバーの詳細については、オーバーロード リストで名前をクリックしてください。For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

オーバーロード

Substring(Index) Substring(Index) Substring(Index) Substring(Index)
Substring(Int32) Substring(Int32) Substring(Int32) Substring(Int32)

インスタンスから部分文字列を取得します。Retrieves a substring from this instance. 部分文字列は、文字列中の指定した文字の位置で開始し、文字列の末尾まで続きます。The substring starts at a specified character position and continues to the end of the string.

Substring(Range) Substring(Range) Substring(Range)
Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32)

インスタンスから部分文字列を取得します。Retrieves a substring from this instance. この部分文字列は、指定した文字位置から開始し、指定した文字数の文字列です。The substring starts at a specified character position and has a specified length.

Substring(Index) Substring(Index) Substring(Index) Substring(Index)

public:
 System::String ^ Substring(Index startIndex);
public string Substring (Index startIndex);
member this.Substring : Index -> string
Public Function Substring (startIndex As Index) As String

パラメーター

startIndex
Index Index Index Index

戻り値

Substring(Int32) Substring(Int32) Substring(Int32) Substring(Int32)

インスタンスから部分文字列を取得します。Retrieves a substring from this instance. 部分文字列は、文字列中の指定した文字の位置で開始し、文字列の末尾まで続きます。The substring starts at a specified character position and continues to the end of the string.

public:
 System::String ^ Substring(int startIndex);
public string Substring (int startIndex);
member this.Substring : int -> string
Public Function Substring (startIndex As Integer) As String

パラメーター

startIndex
Int32 Int32 Int32 Int32

このインスタンス内の部分文字列の 0 から始まる開始文字位置。The zero-based starting character position of a substring in this instance.

戻り値

このインスタンスの startIndex で始まる部分文字列と等価な文字列。または、startIndex がこのインスタンスの長さと等しい場合は EmptyA string that is equivalent to the substring that begins at startIndex in this instance, or Empty if startIndex is equal to the length of this instance.

例外

startIndex が、0 未満か、またはこのインスタンスの長さを超えています。startIndex is less than zero or greater than the length of this instance.

次の例では、文字列から部分文字列の取得を示します。The following example demonstrates obtaining a substring from a string.

using namespace System;
using namespace System::Collections;

int main()
{
   array<String^>^info = { "Name: Felica Walker", "Title: Mz.",
                           "Age: 47", "Location: Paris", "Gender: F"};
   int found = 0;
   Console::WriteLine("The initial values in the array are:");
   for each (String^ s in info) 
      Console::WriteLine(s);

   Console::WriteLine("\nWe want to retrieve only the key information. That is:");
   for each (String^ s in info) { 
      found = s->IndexOf(": ");
      Console::WriteLine("   {0}", s->Substring(found + 2));
   }
}
// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//       
//       We want to retrieve only the key information. That is:
//       Felica Walker
//       Mz.
//       47
//       Paris
//       F
using System;

public class SubStringTest {
    public static void Main() {
        string [] info = { "Name: Felica Walker", "Title: Mz.", 
                           "Age: 47", "Location: Paris", "Gender: F"};
        int found = 0;

        Console.WriteLine("The initial values in the array are:");
        foreach (string s in info)
            Console.WriteLine(s);

        Console.WriteLine("\nWe want to retrieve only the key information. That is:");        
        foreach (string s in info) {
            found = s.IndexOf(": ");
            Console.WriteLine("   {0}", s.Substring(found + 2));
        }
    }
}
// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//       
//       We want to retrieve only the key information. That is:
//          Felica Walker
//          Mz.
//          47
//          Paris
//          F
Public Class SubStringTest
    Public Shared Sub Main()
        Dim info As String() = { "Name: Felica Walker", "Title: Mz.", 
                                 "Age: 47", "Location: Paris", "Gender: F"}
        Dim found As Integer = 0
       
        Console.WriteLine("The initial values in the array are:")
        For Each s As String In info
            Console.WriteLine(s)
        Next s

        Console.WriteLine(vbCrLf + "We want to retrieve only the key information. That is:")
        For Each s As String In info
            found = s.IndexOf(": ")
            Console.WriteLine("   {0}", s.Substring(found + 2))
        Next s
    End Sub 
End Class 
' The example displays the following output:
'       The initial values in the array are:
'       Name: Felica Walker
'       Title: Mz.
'       Age: 47
'       Location: Paris
'       Gender: F
'       
'       We want to retrieve only the key information. That is:
'          Felica Walker
'          Mz.
'          47
'          Paris
'          F

次の例では、Substringは等号で区切られたキーと値のペアを区切るためのメソッド (「=」) 文字。The following example uses the Substring method to separate key/value pairs that are delimited by an equals ("=") character.

using System;

public class Example
{
   public static void Main()
   {
      String[] pairs = { "Color1=red", "Color2=green", "Color3=blue",
                         "Title=Code Repository" };
      foreach (var pair in pairs) {
         int position = pair.IndexOf("=");
         if (position < 0)
            continue;
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1));
      }                          
   }
}
// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'
Module Example
   Public Sub Main()
      Dim pairs() As String = { "Color1=red", "Color2=green", "Color3=blue",
                                "Title=Code Repository" }
      For Each pair In pairs
         Dim position As Integer = pair.IndexOf("=")
         If position < 0 then Continue For
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1))
      Next                          
   End Sub
End Module
' The example displays the following output:
'     Key: Color1, Value: 'red'
'     Key: Color2, Value: 'green'
'     Key: Color3, Value: 'blue'
'     Key: Title, Value: 'Code Repository'

IndexOfメソッドを使用して、文字列に等しい文字の位置を取得します。The IndexOf method is used to get the position of the equals character in the string. 呼び出し、Substring(Int32, Int32)メソッドの抽出、文字列の最初の文字から開始しへの呼び出しによって返される文字数を拡張するキーの名前、IndexOfメソッド。The call to the Substring(Int32, Int32) method extracts the key name, which starts from the first character in the string and extends for the number of characters returned by the call to the IndexOf method. 呼び出し、Substring(Int32)メソッドは、キーに割り当てられている値を抽出します。The call to the Substring(Int32) method then extracts the value assigned to the key. Equals の文字を超えるの 1 つの文字位置から開始し、文字列の末尾に拡張します。It starts at one character position beyond the equals character and extends to the end of the string.

注釈

呼び出す、Substring(Int32)メソッドを指定した文字位置から開始し、文字列の末尾で終了する文字列から部分文字列を抽出します。You call the Substring(Int32) method to extract a substring from a string that begins at a specified character position and ends at the end of the string. 開始文字の位置は 0 から始まるです。つまり、文字列の最初の文字は、インデックス 0、インデックス 1 ではありませんが。The starting character position is a zero-based; in other words, the first character in the string is at index 0, not index 1. 指定した文字位置から開始し、文字列の末尾の前に終了する部分文字列を抽出する呼び出し、Substring(Int32, Int32)メソッド。To extract a substring that begins at a specified character position and ends before the end of the string, call the Substring(Int32, Int32) method.

注意

このメソッドは、現在のインスタンスの値を変更できません。This method does not modify the value of the current instance. 代わりで始まる新しい文字列を返します、startIndex現在の文字列内の位置。Instead, it returns a new string that begins at the startIndex position in the current string.

に特定の文字または文字のシーケンスで始まる部分文字列を抽出するためにメソッドを呼び出すようIndexOfまたはIndexOfの値を取得するstartIndexします。To extract a substring that begins with a particular character or character sequence, call a method such as IndexOf or IndexOf to get the value of startIndex. 2 番目の例を示しています。「=」文字の後に 1 つの文字位置を開始するキー値を抽出します。The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

場合startIndexは 0、元の文字列をそのまま返されます。If startIndex is equal to zero, the method returns the original string unchanged.

こちらもご覧ください

Substring(Range) Substring(Range) Substring(Range)

public:
 System::String ^ Substring(Range range);
public string Substring (Range range);
member this.Substring : Range -> string

パラメーター

戻り値

Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32)

インスタンスから部分文字列を取得します。Retrieves a substring from this instance. この部分文字列は、指定した文字位置から開始し、指定した文字数の文字列です。The substring starts at a specified character position and has a specified length.

public:
 System::String ^ Substring(int startIndex, int length);
public string Substring (int startIndex, int length);
member this.Substring : int * int -> string
Public Function Substring (startIndex As Integer, length As Integer) As String

パラメーター

startIndex
Int32 Int32 Int32 Int32

このインスタンス内の部分文字列の 0 から始まる開始文字位置。The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

部分文字列の文字数。The number of characters in the substring.

戻り値

このインスタンスの startIndex から始まる長さ length の部分文字列と等価な文字列。または、startIndex がこのインスタンスの長さと等しく、length がゼロの場合は EmptyA string that is equivalent to the substring of length length that begins at startIndex in this instance, or Empty if startIndex is equal to the length of this instance and length is zero.

例外

startIndexlength を加算した値はこのインスタンスの範囲外である位置を示します。startIndex plus length indicates a position not within this instance.

または-or- startIndex または length が 0 未満です。startIndex or length is less than zero.

次の例では、シンプルな呼び出しをSubstring(Int32, Int32)6 番目の文字位置から始まる文字列から 2 つの文字を抽出する方法 (つまり、インデックス 5)。The following example illustrates a simple call to the Substring(Int32, Int32) method that extracts two characters from a string starting at the sixth character position (that is, at index five).

using System;

public class Example
{
   public static void Main()
   {
      String value = "This is a string.";
      int startIndex = 5;
      int length = 2;
      String substring = value.Substring(startIndex, length);
      Console.WriteLine(substring);
   }
}
// The example displays the following output:
//       is
Module Example
   Public Sub Main()
      Dim value As String = "This is a string."
      Dim startIndex As Integer = 5
      Dim length As Integer = 2
      Dim substring As String = value.Substring(startIndex, length)
      Console.WriteLine(substring)
   End Sub
End Module
' The example displays the following output:
'       is

次の例では、Substring(Int32, Int32)メソッドで、次の 3 つの場合、文字列内の部分文字列を分離します。The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. 2 つのケースで部分文字列を使用して、比較、され、無効なパラメーターが指定されているため、3 番目のケースで、例外がスローされます。In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • 1 つの文字と、3 番目の位置 (インデックス 2) の文字列を抽出し、"c"と比較します。It extracts the single character and the third position in the string (at index 2) and compares it with a "c". この比較を返しますtrueします。This comparison returns true.

  • (インデックス 3) の文字列内の 4 番目の位置にあるゼロ文字を抽出し、それをIsNullOrEmptyメソッド。It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. これは true を返しますのでへの呼び出し、Substringメソッドを返します。String.Emptyします。This returns true because the call to the Substring method returns String.Empty.

  • 文字列の 4 番目の位置以降にある 1 つの文字を抽出しようとします。It attempts to extract one character starting at the fourth position in the string. その位置にある文字がないため、メソッドの呼び出しがスローされます、ArgumentOutOfRangeException例外。Because there is no character at that position, the method call throws an ArgumentOutOfRangeException exception.

using System;

public class Sample
{
   public static void Main() {
      String myString = "abc";
      bool test1 = myString.Substring(2, 1).Equals("c"); // This is true.
      Console.WriteLine(test1);
      bool test2 = String.IsNullOrEmpty(myString.Substring(3, 0)); // This is true.
      Console.WriteLine(test2);
      try {
         string str3 = myString.Substring(3, 1); // This throws ArgumentOutOfRangeException.
         Console.WriteLine(str3);
      }
      catch (ArgumentOutOfRangeException e) {
         Console.WriteLine(e.Message);
      }         
   }
}
// The example displays the following output:
//       True
//       True
//       Index and length must refer to a location within the string.
//       Parameter name: length
Public Class Sample
   Public Shared Sub Main()
      Dim myString As String = "abc"
      Dim test1 As Boolean = myString.Substring(2, 1).Equals("c") ' This is true.
      Console.WriteLine(test1)
      Dim test2 As Boolean = String.IsNullOrEmpty(myString.Substring(3, 0)) ' This is true.
      Console.WriteLine(test2)
      Try  
         Dim str3 As String = myString.Substring(3, 1) ' This throws ArgumentOutOfRangeException.
         Console.WriteLine(str3)
      Catch e As ArgumentOutOfRangeException
         Console.WriteLIne(e.Message)
      End Try   
   End Sub
End Class 
' The example displays the following output:
'       True
'       True
'       Index and length must refer to a location within the string.
'       Parameter name: length

次の例では、Substringは等号で区切られたキーと値のペアを区切るためのメソッド (「=」) 文字。The following example uses the Substring method to separate key/value pairs that are delimited by an equals ("=") character.

using System;

public class Example
{
   public static void Main()
   {
      String[] pairs = { "Color1=red", "Color2=green", "Color3=blue",
                         "Title=Code Repository" };
      foreach (var pair in pairs) {
         int position = pair.IndexOf("=");
         if (position < 0)
            continue;
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1));
      }                          
   }
}
// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'
Module Example
   Public Sub Main()
      Dim pairs() As String = { "Color1=red", "Color2=green", "Color3=blue",
                                "Title=Code Repository" }
      For Each pair In pairs
         Dim position As Integer = pair.IndexOf("=")
         If position < 0 then Continue For
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1))
      Next                          
   End Sub
End Module
' The example displays the following output:
'     Key: Color1, Value: 'red'
'     Key: Color2, Value: 'green'
'     Key: Color3, Value: 'blue'
'     Key: Title, Value: 'Code Repository'

IndexOfメソッドを使用して、文字列に等しい文字の位置を取得します。The IndexOf method is used to get the position of the equals character in the string. 呼び出し、Substring(Int32, Int32)メソッドの抽出、文字列の最初の文字から開始しへの呼び出しによって返される文字数を拡張するキーの名前、IndexOfメソッド。The call to the Substring(Int32, Int32) method extracts the key name, which starts from the first character in the string and extends for the number of characters returned by the call to the IndexOf method. 呼び出し、Substring(Int32)メソッドは、キーに割り当てられている値を抽出します。The call to the Substring(Int32) method then extracts the value assigned to the key. Equals の文字を超えるの 1 つの文字位置から開始し、文字列の末尾に拡張します。It starts at one character position beyond the equals character and extends to the end of the string.

注釈

呼び出す、Substring(Int32, Int32)メソッドを指定した文字位置から開始し、文字列の末尾の前に終了する文字列から部分文字列を抽出します。You call the Substring(Int32, Int32) method to extract a substring from a string that begins at a specified character position and ends before the end of the string. 開始文字の位置は 0 から始まるです。つまり、文字列の最初の文字は、インデックス 0、インデックス 1 ではありませんが。The starting character position is a zero-based; in other words, the first character in the string is at index 0, not index 1. 指定した文字位置から開始し、文字列の末尾に部分文字列を抽出する呼び出し、Substring(Int32)メソッド。To extract a substring that begins at a specified character position and continues to the end of the string, call the Substring(Int32) method.

注意

このメソッドは、現在のインスタンスの値を変更できません。This method does not modify the value of the current instance. 代わりを持つ新しい文字列を返しますlengthから文字、startIndex現在の文字列内の位置。Instead, it returns a new string with length characters starting from the startIndex position in the current string.

lengthパラメーターが文字列の現在のインスタンスから抽出する文字の合計数を表します。The length parameter represents the total number of characters to extract from the current string instance. これにより、インデックスにある先頭の文字が含まれます。startIndexします。This includes the starting character found at index startIndex. つまり、Substringメソッドが、インデックスから文字を抽出しようとしています。startIndexインデックスにstartIndex + length - 1。In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

に特定の文字または文字のシーケンスで始まる部分文字列を抽出するためにメソッドを呼び出すようIndexOfまたはLastIndexOfの値を取得するstartIndexします。To extract a substring that begins with a particular character or character sequence, call a method such as IndexOf or LastIndexOf to get the value of startIndex.

部分文字列の場合startIndex、指定された文字シーケンスにするメソッドを呼び出すようIndexOfまたはLastIndexOf終了文字または文字のシーケンスのインデックスを取得します。If the substring extends from startIndex to a specified character sequence, you can call a method such as IndexOf or LastIndexOf to get the index of the ending character or character sequence. 文字列内のインデックス位置に、次のように、その値をし、変換できます。You can then convert that value to an index position in the string as follows:

  • 部分文字列の終わりをマークする単一の文字を検索する場合、lengthパラメーターと等しいendIndex - startIndex + 1、場所endIndexの戻り値は、IndexOfまたはIndexOfメソッド。If you've searched for a single character that is to mark the end of the substring, the length parameter equals endIndex - startIndex + 1, where endIndex is the return value of the IndexOf or IndexOf method. 次の例では、文字列から文字"b"の継続的なブロックを抽出します。The following example extracts a continuous block of "b" characters from a string.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          String s = "aaaaabbbcccccccdd";
          Char charRange = 'b';
          int startIndex = s.IndexOf(charRange);
          int endIndex = s.LastIndexOf(charRange);
          int length = endIndex - startIndex + 1;
          Console.WriteLine("{0}.Substring({1}, {2}) = {3}",
                            s, startIndex, length, 
                            s.Substring(startIndex, length));
       }
    }
    // The example displays the following output:
    //       aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
    Module Example
       Public Sub Main()
          Dim s As String = "aaaaabbbcccccccdd"
          Dim charRange As Char = "b"c
          Dim startIndex As Integer = s.Indexof(charRange)
          Dim endIndex As Integer = s.LastIndexOf(charRange)
          Dim length = endIndex - startIndex + 1
          Console.WriteLine("{0}.Substring({1}, {2}) = {3}",
                            s, startIndex, length, 
                            s.Substring(startIndex, length))
       End Sub
    End Module
    ' The example displays the following output:
    '     aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
  • 部分文字列の終わりをマークする複数の文字を検索する場合、lengthパラメーターと等しいendIndex + endMatchLength - startIndexここで、 endIndex の戻り値は、IndexOfまたはIndexOfメソッドをおよびendMatchLength部分文字列の末尾を示す文字のシーケンスの長さです。If you've searched for multiple characters that are to mark the end of the substring, the length parameter equals endIndex + endMatchLength - startIndex, where endIndex is the return value of the IndexOf or IndexOf method, and endMatchLength is the length of the character sequence that marks the end of the substring. 次の例は、XML を格納したテキストのブロックを抽出<definition>要素。The following example extracts a block of text that contains an XML <definition> element.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          String s = "<term>extant<definition>still in existence</definition></term>";
          String searchString = "<definition>";
          int startIndex = s.IndexOf(searchString);
          searchString = "</" + searchString.Substring(1);
          int endIndex = s.IndexOf(searchString);
          String substring = s.Substring(startIndex, endIndex + searchString.Length - startIndex);
          Console.WriteLine("Original string: {0}", s);
          Console.WriteLine("Substring;       {0}", substring); 
       }
    }
    // The example displays the following output:
    //     Original string: <term>extant<definition>still in existence</definition></term>
    //     Substring;       <definition>still in existence</definition>
    
    Module Example
       Public Sub Main()
          Dim s As String = "<term>extant<definition>still in existence</definition></term>"
          Dim searchString As String = "<definition>"
          Dim startindex As Integer = s.IndexOf(searchString)
          searchString = "</" + searchString.Substring(1)
          Dim endIndex As Integer = s.IndexOf(searchString)
          Dim substring As String = s.Substring(startIndex, endIndex + searchString.Length - StartIndex)
          Console.WriteLine("Original string: {0}", s)
          Console.WriteLine("Substring;       {0}", substring) 
       End Sub
    End Module
    ' The example displays the following output:
    '   Original string: <term>extant<definition>still in existence</definition></term>
    '   Substring;       <definition>still in existence</definition>
    
  • 文字または文字シーケンスが含まれていない場合、部分文字列の末尾、lengthパラメーターと等しいendIndex - startIndexここで、endIndexの戻り値は、IndexOfまたはIndexOfメソッド。If the character or character sequence is not included in the end of the substring, the length parameter equals endIndex - startIndex, where endIndex is the return value of the IndexOf or IndexOf method.

場合startIndexが 0 と等しい、メソッド、現在の文字列の長さが変更されていない元の文字列を返します。If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

こちらもご覧ください

適用対象