Share via


StringBuilder.Insert メソッド (Int32, Char , Int32, Int32)

Unicode 文字の指定した部分配列の文字列形式をこのインスタンスの指定した文字位置に挿入します。

Overloads Public Function Insert( _
   ByVal index As Integer, _   ByVal value() As Char, _   ByVal startIndex As Integer, _   ByVal charCount As Integer _) As StringBuilder
[C#]
public StringBuilder Insert(intindex,char[] value,intstartIndex,intcharCount);
[C++]
public: StringBuilder* Insert(intindex,__wchar_tvalue __gc[],intstartIndex,intcharCount);
[JScript]
public function Insert(
   index : int,value : Char[],startIndex : int,charCount : int) : StringBuilder;

パラメータ

  • index
    挿入する位置。
  • value
    文字配列。
  • startIndex
    value 内の開始インデックス。
  • charCount
    挿入する文字数。

戻り値

挿入操作が発生した後のこのインスタンスへの参照。

例外

例外の種類 条件
ArgumentNullException value が null 参照 (Visual Basic では Nothing) であり、 startIndexcharCount が 0 以外の値です。
ArgumentOutOfRangeException indexstartIndex 、または charCount が 0 未満です。

または

index がこのインスタンスの長さを超えています。

または

startIndexcharCount を加算した値が、 value 内にない位置を示しています。

または

このインスタンスの値を増やすと、 MaxCapacity を超えます。

解説

新しいテキストの入るスペースを空けるため、既存の文字がシフトされます。容量は、必要に応じて調整されます。

使用例

 
' This example demonstrates StringBuilder.Insert()
Imports System
Imports System.Text

Class Sample
   '                                 index: 012345
   Private Shared initialValue As String = "--[]--"
   Private Shared sb As StringBuilder
   
   Public Shared Sub Main()
      Dim xyz As String = "xyz"
      Dim abc As Char() =  {"a"c, "b"c, "c"c}
      Dim star As Char = "*"c
      Dim obj As [Object] = 0
      
      Dim xBool As Boolean = True
      Dim xByte As Byte = 1
      Dim xInt16 As Short = 2
      Dim xInt32 As Integer = 3
      Dim xInt64 As Long = 4
      Dim xDecimal As [Decimal] = 5
      Dim xSingle As Single = 6.6F
      Dim xDouble As Double = 7.7
      
      ' The following types are not CLS-compliant.
      ' Dim xUInt16 As System.UInt16 = 8 
      ' Dim xUInt32 As System.UInt32 = 9
      ' Dim xUInt64 As System.UInt64 = 10 
      ' Dim xSByte As System.SByte = - 11
      '
      Console.WriteLine("StringBuilder.Insert method")
      sb = New StringBuilder(initialValue)
      
      sb.Insert(3, xyz, 2)
      Show(1, sb)
      
      sb.Insert(3, xyz)
      Show(2, sb)
      
      sb.Insert(3, star)
      Show(3, sb)
      
      sb.Insert(3, abc)
      Show(4, sb)
      
      sb.Insert(3, abc, 1, 2)
      Show(5, sb)
      
      sb.Insert(3, xBool)     ' True
      Show(6, sb)
      
      sb.Insert(3, obj)       ' 0
      Show(7, sb)
      
      sb.Insert(3, xByte)     ' 1
      Show(8, sb)
      
      sb.Insert(3, xInt16)    ' 2
      Show(9, sb)
      
      sb.Insert(3, xInt32)    ' 3
      Show(10, sb)
      
      sb.Insert(3, xInt64)    ' 4
      Show(11, sb)
      
      sb.Insert(3, xDecimal)  ' 5
      Show(12, sb)
      
      sb.Insert(3, xSingle)   ' 6.6
      Show(13, sb)
      
      sb.Insert(3, xDouble)   ' 7.7
      Show(14, sb)
      
      ' The following Insert methods are not CLS-compliant.
      ' sb.Insert(3, xUInt16) ' 8
      ' sb.Insert(3, xUInt32) ' 9
      ' sb.Insert(3, xUInt64) ' 10
      ' sb.Insert(3, xSByte)  ' -11

   End Sub 'Main
   
   Public Shared Sub Show(overloadNumber As Integer, sbs As StringBuilder)
      Console.WriteLine("{0,2:G} = {1}", overloadNumber, sbs.ToString())
      sb = New StringBuilder(initialValue)
   End Sub 'Show
End Class 'Sample
'
'This example produces the following results:
'
'StringBuilder.Insert method
' 1 = --[xyzxyz]--
' 2 = --[xyz]--
' 3 = --[*]--
' 4 = --[abc]--
' 5 = --[bc]--
' 6 = --[True]--
' 7 = --[0]--
' 8 = --[1]--
' 9 = --[2]--
'10 = --[3]--
'11 = --[4]--
'12 = --[5]--
'13 = --[6.6]--
'14 = --[7.7]--
'

[C#] 
// This example demonstrates StringBuilder.Insert()
using System;
using System.Text;

class Sample 
{
//                         index: 012345
    static string initialValue = "--[]--";
    static StringBuilder sb;

    public static void Main() 
    {
    string      xyz       = "xyz";
    char[]      abc       = {'a', 'b', 'c'};
    char        star      = '*';
    Object     obj       = 0;

    bool        xBool     = true;
    byte        xByte     = 1;
    short       xInt16    = 2;
    int         xInt32    = 3;
    long        xInt64    = 4;
    Decimal     xDecimal  = 5;
    float       xSingle   = 6.6F;
    double      xDouble   = 7.7;

// The following types are not CLS-compliant.
    ushort      xUInt16   = 8;
    uint        xUInt32   = 9;
    ulong       xUInt64   = 10;
    sbyte       xSByte    = -11;
//
    Console.WriteLine("StringBuilder.Insert method");
    sb = new StringBuilder(initialValue);

    sb.Insert(3, xyz, 2);
    Show(1, sb);

    sb.Insert(3, xyz);
    Show(2, sb);

    sb.Insert(3, star);
    Show(3, sb);

    sb.Insert(3, abc);
    Show(4, sb);

    sb.Insert(3, abc, 1, 2);
    Show(5, sb);

    sb.Insert(3, xBool);     // True
    Show(6, sb);

    sb.Insert(3, obj);       // 0
    Show(7, sb);

    sb.Insert(3, xByte);     // 1
    Show(8, sb);

    sb.Insert(3, xInt16);    // 2
    Show(9, sb);

    sb.Insert(3, xInt32);    // 3
    Show(10, sb);

    sb.Insert(3, xInt64);    // 4
    Show(11, sb);

    sb.Insert(3, xDecimal);  // 5
    Show(12, sb);

    sb.Insert(3, xSingle);   // 6.6
    Show(13, sb);

    sb.Insert(3, xDouble);   // 7.7
    Show(14, sb);

// The following Insert methods are not CLS-compliant.
    sb.Insert(3, xUInt16);   // 8
    Show(15, sb);

    sb.Insert(3, xUInt32);   // 9
    Show(16, sb);

    sb.Insert(3, xUInt64);   // 10
    Show(17, sb);

    sb.Insert(3, xSByte);    // -11
    Show(18, sb);
//
    }

    public static void Show(int overloadNumber, StringBuilder sbs)
    {
    Console.WriteLine("{0,2:G} = {1}", overloadNumber, sbs.ToString());
    sb = new StringBuilder(initialValue);
    }
}
/*
This example produces the following results:

StringBuilder.Insert method
 1 = --[xyzxyz]--
 2 = --[xyz]--
 3 = --[*]--
 4 = --[abc]--
 5 = --[bc]--
 6 = --[True]--
 7 = --[0]--
 8 = --[1]--
 9 = --[2]--
10 = --[3]--
11 = --[4]--
12 = --[5]--
13 = --[6.6]--
14 = --[7.7]--
15 = --[8]--
16 = --[9]--
17 = --[10]--
18 = --[-11]--

*/

[C++] 
// This example demonstrates StringBuilder.Insert()
#using <mscorlib.dll>
using namespace System;
using namespace System::Text;

__gc class Sample 
{
//                           index: 012345
    static String* initialValue = S"--[]--";
    static StringBuilder* sb;
public:
    static void Main() 
    {
    String*     xyz       = S"xyz";
    Char abc[]            = {'a', 'b', 'c'};
    Char        star      = '*';
    Object*     obj       = __box(0);

    bool        xBool     = true;
    Byte        xByte     = 1;
    short       xInt16    = 2;
    int         xInt32    = 3;
    long        xInt64    = 4;
    Decimal     xDecimal  = 5;
    float       xSingle   = 6.6F;
    double      xDouble   = 7.7;

// The following types are not CLS-compliant.
    UInt16      xUInt16   = 8;
    UInt32      xUInt32   = 9;
    UInt64      xUInt64   = 10;
    SByte       xSByte    = -11;
//
    Console::WriteLine(S"StringBuilder.Insert method");
    sb = new StringBuilder(initialValue);

    sb->Insert(3, xyz, 2);
    Show(1, sb);

    sb->Insert(3, xyz);
    Show(2, sb);

    sb->Insert(3, star);
    Show(3, sb);

    sb->Insert(3, abc);
    Show(4, sb);

    sb->Insert(3, abc, 1, 2);
    Show(5, sb);

    sb->Insert(3, xBool);     // True
    Show(6, sb);

    sb->Insert(3, obj);       // 0
    Show(7, sb);

    sb->Insert(3, xByte);     // 1
    Show(8, sb);

    sb->Insert(3, xInt16);    // 2
    Show(9, sb);

    sb->Insert(3, xInt32);    // 3
    Show(10, sb);

    sb->Insert(3, xInt64);    // 4
    Show(11, sb);

    sb->Insert(3, xDecimal);  // 5
    Show(12, sb);

    sb->Insert(3, xSingle);   // 6.6
    Show(13, sb);

    sb->Insert(3, xDouble);   // 7.7
    Show(14, sb);

// The following Insert methods are not CLS-compliant.
    sb->Insert(3, xUInt16);   // 8
    Show(15, sb);

    sb->Insert(3, xUInt32);   // 9
    Show(16, sb);

    sb->Insert(3, xUInt64);   // 10
    Show(17, sb);

    sb->Insert(3, xSByte);    // -11
    Show(18, sb);
//
    }

    static void Show(int overloadNumber, StringBuilder* sbs)
    {
    Console::WriteLine(S"{0,2:G} = {1}", __box(overloadNumber),sbs);
    sb = new StringBuilder(initialValue);
    }
};

int main()
{
    Sample::Main();
}
/*
This example produces the following results:

StringBuilder.Insert method
 1 = --[xyzxyz]--
 2 = --[xyz]--
 3 = --[*]--
 4 = --[abc]--
 5 = --[bc]--
 6 = --[True]--
 7 = --[0]--
 8 = --[1]--
 9 = --[2]--
10 = --[3]--
11 = --[4]--
12 = --[5]--
13 = --[6.6]--
14 = --[7.7]--
15 = --[8]--
16 = --[9]--
17 = --[10]--
18 = --[-11]--

*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

StringBuilder クラス | StringBuilder メンバ | System.Text 名前空間 | StringBuilder.Insert オーバーロードの一覧