Visual Basic における文字列の基本String Basics in Visual Basic

String データ型は、一連の文字を表します (各文字は Char データ型のインスタンスを表しています)。The String data type represents a series of characters (each representing in turn an instance of the Char data type). このトピックでは、Visual Basic の文字列の基本的な概念について説明します。This topic introduces the basic concepts of strings in Visual Basic.

文字列変数String Variables

文字列のインスタンスには、一連の文字を表すリテラル値を代入できます。An instance of a string can be assigned a literal value that represents a series of characters. 次に例を示します。For example:

Dim MyString As String
MyString = "This is an example of the String data type"

String 変数は、文字列に評価される任意の式も受け取ることができます。A String variable can also accept any expression that evaluates to a string. 以下に例を示します。Examples are shown below:

    Dim OneString As String
    Dim TwoString As String
    OneString = "one, two, three, four, five"

    ' Evaluates to "two".
    TwoString = OneString.Substring(5, 3)
    OneString = "1"

    ' Evaluates to "11".
    TwoString = OneString & "1"

String 変数に代入されるすべてのリテラルは、引用符 ("") で囲む必要があります。Any literal that is assigned to a String variable must be enclosed in quotation marks (""). これは、文字列内の引用符を引用符で表すことができないことを意味します。This means that a quotation mark within a string cannot be represented by a quotation mark. たとえば、次のコードはコンパイラ エラーになります。For example, the following code causes a compiler error:

Dim myString As String

' This line would cause an error.
' myString = "He said, "Look at this example!""

このコードでは、2 つ目の引用符の後で文字列が終了し、残りの部分はコードであるとコンパイラが解釈するため、エラーが発生します。This code causes an error because the compiler terminates the string after the second quotation mark, and the remainder of the string is interpreted as code. この問題を解決するために、Visual Basic では文字列リテラル内の 2 つの引用符を文字列内の 1 つの引用符として解釈します。To solve this problem, Visual Basic interprets two quotation marks in a string literal as one quotation mark in the string. 次の例は、引用符を文字列に含めるための正しい方法を示しています。The following example demonstrates the correct way to include a quotation mark in a string:

' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""

前の例で、Look という単語の前の 2 つの引用符は、文字列内では 1 つの引用符になります。In the preceding example, the two quotation marks preceding the word Look become one quotation mark in the string. 行の末尾の 3 つの引用符は、文字列内の 1 つの引用符と文字列終端文字を表します。The three quotation marks at the end of the line represent one quotation mark in the string and the string termination character.

文字列リテラルには、複数の行を含めることができます。String literals can contain multiple lines:

Dim x = "hello  

結果の文字列には、文字列リテラルで使用する改行シーケンス (vbcr、vbcrlf など) が含まれます。The resulting string contains newline sequences that you used in your string literal (vbcr, vbcrlf, etc.). 古い回避策を使用する必要はなくなりました。You no longer need to use the old workaround:

Dim x = <xml><![CDATA[Hello  

文字列内の文字Characters in Strings

文字列は、一連の Char 値であると考えることができます。また、配列の場合と同様に、String 型には文字列に対してさまざまな操作を行うことができる、組み込み関数があります。A string can be thought of as a series of Char values, and the String type has built-in functions that allow you to perform many manipulations on a string that resemble the manipulations allowed by arrays. .NET Framework のすべての配列と同様に、これらは 0 ベース配列です。Like all array in .NET Framework, these are zero-based arrays. 文字列内の特定の文字は、Chars プロパティを通じて参照できます。このプロパティでは、文字列内で文字が現れる位置を使用して、文字にアクセスできます。You may refer to a specific character in a string through the Chars property, which provides a way to access a character by the position in which it appears in the string. 次に例を示します。For example:

    Dim myString As String = "ABCDE"
    Dim myChar As Char

    ' The value of myChar is "D".
    myChar = myString.Chars(3)

上の例で、文字列の Chars プロパティは、文字列内の 4 番目の文字 (つまり D) を返し、myChar に代入します。In the above example, the Chars property of the string returns the fourth character in the string, which is D, and assigns it to myChar. Length プロパティを通じて、特定の文字列の長さを取得することもできます。You can also get the length of a particular string through the Length property. 文字列に対して複数の配列型の操作を実行する必要がある場合は、文字列の ToCharArray 関数を使用して、文字列を Char インスタンスの配列に変換することができます。If you need to perform multiple array-type manipulations on a string, you can convert it to an array of Char instances using the ToCharArray function of the string. 次に例を示します。For example:

Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray

これで、変数 myArray の内容は、Char 値の配列になりました。各値は myString の文字を表しています。The variable myArray now contains an array of Char values, each representing a character from myString.

文字列の不変性The Immutability of Strings

文字列は不変です。つまり、その値は作成後に変更することができません。A string is immutable, which means its value cannot be changed once it has been created. ただし、文字列変数に複数の値を代入できないわけではありません。However, this does not prevent you from assigning more than one value to a string variable. 次に例を示します。Consider the following example:

Dim myString As String = "This string is immutable"
myString = "Or is it?"

ここでは、文字列変数が作成され、値を設定され、その値が変更されています。Here, a string variable is created, given a value, and then its value is changed.

より具体的には、最初の行で型 String のインスタンスが作成され、値 This string is immutable が設定されます。More specifically, in the first line, an instance of type String is created and given the value This string is immutable. 例の 2 番目の行では、新しいインスタンスが作成され、値 Or is it? が設定されます。文字列変数は、最初のインスタンスへの参照を破棄し、新しいインスタンスへの参照を格納します。In the second line of the example, a new instance is created and given the value Or is it?, and the string variable discards its reference to the first instance and stores a reference to the new instance.

他の組み込みのデータ型とは異なり、String は参照型です。Unlike other intrinsic data types, String is a reference type. 参照型の変数が関数またはサブルーチンへの引数として渡されると、文字列の実際の値ではなく、データが格納されているメモリ アドレスへの参照が渡されます。When a variable of reference type is passed as an argument to a function or subroutine, a reference to the memory address where the data is stored is passed instead of the actual value of the string. そのため、前の例では変数の名前は変わりませんが、新しい値を保持している、String クラスの新しい別のインスタンスを指すようになります。So in the previous example, the name of the variable remains the same, but it points to a new and different instance of the String class, which holds the new value.

関連項目See also