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: [!code-vb[VbVbalrStrings#63](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#63)] `String\` 変数は、文字列に評価される任意の式も受け取ることができます。A `String` variable can also accept any expression that evaluates to a string. 以下に例を示します。Examples are shown below: [!code-vb[VbVbalrStrings#64](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#64)] `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: [!code-vb[VbVbalrStrings#65](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#65)] このコードでは、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 は、文字列内の 1 つの引用符としてリテラル文字列内の 2 つの引用符を解釈します。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: [!code-vb[VbVbalrStrings#66](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#66)] 前の例で、`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: ```vb Dim x = "hello world" ``` 結果の文字列には、文字列リテラルで使用する改行シーケンス (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: ```vb Dim x = .Value ``` ## 文字列内の文字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. [!INCLUDE[dnprdnshort](~/includes/dnprdnshort-md.md)] のすべての配列のように、これらは 0 ベース配列です。Like all array in [!INCLUDE[dnprdnshort](~/includes/dnprdnshort-md.md)], 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: [!code-vb[VbVbalrStrings#67](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#67)] 上の例で、文字列の `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: [!code-vb[VbVbalrStrings#68](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#68)] これで、変数 `myArray` の内容は、`Char` 値の配列になりました。各値は `myString` の文字を表しています。The variable `myArray` now contains an array of `Char` values, each representing a character from `myString`. ## 文字列の不変性The Immutability of Strings 文字列が*不変*つまり、その値を 1 回変更ことはできませんが作成されました。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: [!code-vb[VbVbalrStrings#69](~/samples/snippets/visualbasic/VS_Snippets_VBCSharp/VbVbalrStrings/VB/Class2.vb#69)] ここでは、文字列変数が作成され、値を設定され、その値が変更されています。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 - [Visual Basic の文字列の概要Introduction to Strings in Visual Basic](../../../../visual-basic/programming-guide/language-features/strings/introduction-to-strings.md) - [String データ型String Data Type](../../../../visual-basic/language-reference/data-types/string-data-type.md) - [Char データ型Char Data Type](../../../../visual-basic/language-reference/data-types/char-data-type.md) - [基本的な文字列操作Basic String Operations](../../../../standard/base-types/basic-string-operations.md)