新しい文字列の作成
.NET Framework では、文字列、文字列配列、またはオブジェクトを結合して新しい文字列オブジェクトを作成するためのメソッドが System.String クラスに用意されています。有用なメソッドの一部を次の表に示します。
メソッド名 | 使用方法 |
---|---|
一連の入力オブジェクトから、書式設定された文字列を作成します。 |
|
2 つ以上の文字列を連結して文字列を作成します。 |
|
文字列の配列を結合して新しい文字列を作成します。 |
|
既存の文字列内の指定したインデックス位置に文字列を挿入して、新しい文字列を作成します。 |
|
文字の配列内の指定した位置に、文字列内の指定した文字をコピーします。 |
Format
String.Format メソッドを使用すると、書式指定された文字列を作成し、複数のオブジェクトを表す文字列を連結できます。このメソッドは、渡された任意のオブジェクトを文字列に自動変換します。たとえば、アプリケーションでユーザーに対して Int32 値と DateTime 値を表示する必要がある場合、これらの値を表す文字列を Format メソッドを使用して簡単に作成できます。このメソッドで使用される書式指定規則の詳細については、複合書式指定に関するセクションを参照してください。
Format メソッドを使用して、整数変数を使用する文字列を作成する例を次に示します。
Dim MyInt As Integer = 12
Dim MyString As String = [String].Format("Your dog has {0} fleas. It is time to get a flea collar. The current universal date is: {1:u}." , MyInt, DateTime.Now)
Console.WriteLine(MyString)
int MyInt = 12;
string MyString = String.Format("Your dog has {0} fleas. It is time to get a flea collar. The current universal date is: {1:u}." , MyInt, DateTime.Now);
Console.WriteLine(MyString);
上の例では、Your dog has 12 fleas. It is time to get a flea collar. The current universal date is: 2001-04-10 15:51:24Z.
というテキストがコンソールに出力されます。DateTime.Now は現在のスレッドに関連付けられているカルチャによって指定されている形式で現在の日時を表示します。
Concat
String.Concat メソッドを使用すると、2 つ以上の既存のオブジェクトを連結して新しい文字列オブジェクトを簡単に作成できます。このメソッドは、言語に依存することなく文字列を連結します。このメソッドは、System.Object クラスから派生したすべてのクラスを受け入れます。既存の 2 つの文字列オブジェクトおよび区切り文字から文字列を作成する例を次に示します。
Dim MyString As String = "Hello"
Dim YourString As String = "World!"
Console.WriteLine(String.Concat(MyString, " "c, YourString))
string MyString = "Hello";
string YourString = "World!";
Console.WriteLine(String.Concat(MyString, ' ', YourString));
このコードは、コンソールに Hello World!
と出力します。
Join
String.Join メソッドは、文字列の配列と区切り文字から新しい文字列を作成します。このメソッドは、複数の文字列をコンマなどで区切って連結したリストを作成する場合に便利です。
文字列の配列を空白で区切って連結する例を次に示します。
Dim MyString As String() = {"Hello", "and", "welcome", "to", "my" , "world!"}
Console.WriteLine(String.Join(" ", MyString))
string[] MyString = {"Hello", "and", "welcome", "to", "my" , "world!"};
Console.WriteLine(String.Join(" ", MyString));
このコードは、コンソールに Hello and welcome to my world!
と出力します。
Insert
String.Insert メソッドは、ある文字列を別の文字列内の指定した位置に挿入することによって新しい文字列を作成します。このメソッドでは、0 から始まるインデックスが使用されます。文字列を MyString
内の 5 番目のインデックス位置に挿入し、挿入した値を含む新しい文字列を作成する例を次に示します。
Dim MyString As String = "Once a time"
Console.WriteLine(MyString.Insert(4, " upon"))
string MyString = "Once a time.";
Console.WriteLine(MyString.Insert(4, " upon"));
このコードは、コンソールに Once upon a time.
と出力します。
CopyTo
String.CopyTo メソッドは、文字列の一部を文字配列にコピーします。文字列のコピー開始位置を示すインデックスと、コピーする文字数の両方を指定できます。このメソッドには、コピー元のインデックス、文字の配列、コピー先のインデックス、およびコピーする文字数を渡します。すべてのインデックスは 0 から始まります。
CopyTo メソッドを使用して、文字列オブジェクトに含まれる単語 "Hello" を構成する文字を文字配列の 1 番目のインデックス位置にコピーする例を次に示します。
Dim MyString As String = "Hello World!"
Dim MyCharArray As Char() = {"W"c, "h"c, "e"c, "r"c, "e"c}
Console.WriteLine("The original character array: {0}", MyCharArray)
MyString.CopyTo(0, MyCharArray, 0, 5)
Console.WriteLine("The new character array: {0}", MyCharArray)
string MyString = "Hello World!";
char[] MyCharArray = {'W','h','e','r','e'};
Console.WriteLine("The original character array: {0}", MyCharArray);
MyString.CopyTo(0, MyCharArray,0 ,5);
Console.WriteLine("The new character array: {0}", MyCharArray);
このコードは、コンソールに次のように出力します。
The original character array: Where
The new character array: Hello