Substring メソッド (Int32, Int32)
目次を折りたたむ
目次を展開する
この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

String.Substring メソッド (Int32, Int32)

 

インスタンスから部分文字列を取得します。 この部分文字列は、指定した文字位置から開始し、指定した文字数の文字列です。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

public string Substring(
	int startIndex,
	int length
)

パラメーター

startIndex
Type: System.Int32

このインスタンス内の部分文字列の 0 から始まる開始文字位置。

length
Type: System.Int32

部分文字列の文字数。

戻り値

Type: System.String

このインスタンスの startIndex から始まる長さ length の部分文字列と等価な文字列。または、startIndex がこのインスタンスの長さと等しく、length がゼロの場合は Empty

Exception Condition
ArgumentOutOfRangeException

startIndexlength を加算した値はこのインスタンスの範囲外である位置を示します。

または

startIndex または length が 0 未満です。

呼び出す、 Substring(Int32, Int32) メソッドを指定した文字位置で開始され、文字列の末尾の前に終了する文字列から部分文字列を取得します。 開始文字位置は、0 から始まります。つまり、文字列内の最初の文字は、インデックス 0 でないインデックス 1 です。 指定した文字位置から開始され、文字列の末尾に続行する部分文字列を抽出するには、呼び出し、 Substring(Int32) メソッドです。

System_CAPS_noteメモ

このメソッドでは、現在のインスタンスの値は変更されません。 代わりを持つ新しい文字列を返します length から文字、 startIndex 現在の文字列内の位置。

length パラメーターは、現在の文字列のインスタンスから抽出する文字の合計数を表します。 これにより、インデックスにある先頭の文字が含まれます。 startIndexします。 つまり、 Substring メソッドが、インデックスから文字を抽出しようとしています。 startIndex インデックスに startIndex + length - 1 です。

特定の文字または文字のシーケンスで始まる部分文字列を抽出するにメソッドを呼び出すよう IndexOf または LastIndexOf の値を取得する startIndexです。

部分文字列の場合 startIndex を指定した文字のシーケンスでは、メソッドを呼び出してなど IndexOf または LastIndexOf 終了文字または文字のシーケンスのインデックスを取得します。 文字列内のインデックス位置に次のように、その値を変換できます。

  • 、部分文字列の末尾を示すには、単一の文字を検索する場合、 length パラメーターと等しい endIndex - startIndex + 1、位置 endIndex の戻り値は、、 IndexOf または IndexOf メソッドです。 次の例では、文字列から文字"b"の連続ブロックを抽出します。

    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
    
  • 、部分文字列の末尾を示すため、複数の文字を検索する場合、 length パラメーターと等しい endIndex + endMatchLength - startIndex, ここで、 endIndex の戻り値は、、 IndexOf または IndexOf メソッド。 および endMatchLength 部分文字列の末尾を示す文字シーケンスの長さです。 次の例は、XML を含むテキストのブロックを抽出 <definition> 要素。

    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>
    
  • 、部分文字列の末尾には、文字または文字のシーケンスは含まれていない場合、 length パラメーターと等しい endIndex - startIndex, ここで、 endIndex の戻り値は、 IndexOf または IndexOf メソッドです。

場合 startIndex は 0 と equals メソッド、現在の文字列の長さが変更されていない元の文字列を返します。

次の例では、単純な呼び出しを Substring(Int32, Int32) 6 番目の文字位置から始まる文字列から 2 つの文字を抽出する方法 (つまり、インデックス 5)。

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

次の例では、 Substring(Int32, Int32) メソッドに次の 3 つのケースを文字列内の部分文字列を分離します。 比較では、2 つの場合、部分文字列を使用し、無効なパラメーターを指定するための 3 番目のケース、例外がスローされます。

  • 一文字と (インデックス 2)、文字列内の 3 番目の位置を抽出し、"c"と比較します。 この比較で返される trueです。

  • 渡されます (インデックス 3)、文字列内の 4 番目の位置以降にあるゼロ文字を抽出され、 IsNullOrEmpty メソッドです。 これは true を返すためへの呼び出し、 Substring メソッドが返す String.Emptyします。

  • 文字列内の 4 番目の位置以降にある 1 つの文字を抽出しようとします。 メソッドの呼び出しをスローする位置にある文字がないため、 ArgumentOutOfRangeException 例外です。

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

次の例では、 Substring 等号で区切られたキーと値のペアを区切る方法 (「=」) 文字です。

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'

The M:System.String.IndexOf(System.String) method is used to get the position of the equals character in the string.. The call to the M:System.String.Substring(System.Int32,System.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 M:System.String.IndexOf(System.String) method. The call to the M:System.String.Substring(System.Int32) method then extracts the value assigned to the key. It starts at one character position beyond the equals character and extends to the end of the string.

Universal Windows Platform
8 から利用可能
.NET Framework
1.1 から利用可能
Portable Class Library
サポート対象 : portable .NET platforms
Silverlight
2.0 から利用可能
Windows Phone Silverlight
7.0 から利用可能
Windows Phone
8.1 から利用可能
トップに戻る
表示:
© 2016 Microsoft