데이터 형식은 String
일련의 문자를 나타냅니다(각각은 데이터 형식의 Char
인스턴스를 나타냅니다). 이 항목에서는 Visual Basic에서 문자열의 기본 개념을 소개합니다.
문자열 변수
문자열 인스턴스에는 일련의 문자를 나타내는 리터럴 값이 할당될 수 있습니다. 다음은 그 예입니다.
Dim MyString As String
MyString = "This is an example of the String data type"
변수는 String
문자열로 계산되는 모든 식을 수락할 수도 있습니다. 예제는 다음과 같습니다.
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
할당된 모든 리터럴은 따옴표("")로 묶어야 합니다. 즉, 문자열 내의 따옴표는 따옴표로 나타낼 수 없습니다. 예를 들어 다음 코드는 컴파일러 오류를 발생합니다.
Dim myString As String
' This line would cause an error.
' myString = "He said, "Look at this example!""
이 코드는 컴파일러가 두 번째 따옴표 뒤의 문자열을 종료하고 나머지 문자열이 코드로 해석되기 때문에 오류가 발생합니다. 이 문제를 해결하기 위해 Visual Basic은 문자열 리터럴의 두 따옴표를 문자열의 한 따옴표로 해석합니다. 다음 예제에서는 문자열에 따옴표를 포함하는 올바른 방법을 보여 줍니다.
' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""
앞의 예제에서 단어 Look
앞의 두 따옴표는 문자열에서 하나의 따옴표가 됩니다. 줄 끝에 있는 세 개의 따옴표는 문자열의 따옴표 하나와 문자열 종료 문자를 나타냅니다.
문자열 리터럴에는 다음과 같은 여러 줄이 포함될 수 있습니다.
Dim x = "hello
world"
결과 문자열에는 문자열 리터럴(vbcr, vbcrlf 등)에서 사용한 줄 바꿈 시퀀스가 포함됩니다. 더 이상 이전 해결 방법을 사용할 필요가 없습니다.
Dim x = <xml><![CDATA[Hello
World]]></xml>.Value
문자열의 문자
문자열은 일련의 Char
값으로 간주될 수 있으며, 형식에는 배열에서 허용하는 조작과 String
유사한 문자열에 대해 많은 조작을 수행할 수 있는 기본 제공 함수가 있습니다. .NET Framework의 모든 배열과 마찬가지로 이러한 배열은 0부터 시작하는 배열입니다. 문자열에 나타나는 위치에 따라 문자에 액세스하는 방법을 제공하는 속성을 통해 Chars
문자열의 특정 문자를 참조할 수 있습니다. 다음은 그 예입니다.
Dim myString As String = "ABCDE"
Dim myChar As Char
' The value of myChar is "D".
myChar = myString.Chars(3)
위의 예제 Chars
에서 문자열의 속성은 문자열의 네 번째 문자(예 D
: )를 반환하고 이를 할당합니다 myChar
. 속성을 통해 Length
특정 문자열의 길이를 가져올 수도 있습니다. 문자열에 대해 여러 배열 형식 조작을 수행해야 하는 경우 문자열의 함수를 사용하여 Char
인스턴스 배열 ToCharArray
로 변환할 수 있습니다. 다음은 그 예입니다.
Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray
변수 myArray
는 이제 Char
의 각 문자를 나타내는 값 배열 myString
을 포함합니다.
문자열의 불변성
문자열은 변경할 수 없으므로 값을 만든 후에는 변경할 수 없습니다. 그러나 이렇게 해서 문자열 변수에 둘 이상의 값을 할당할 수 없습니다. 다음 예제를 고려하세요.
Dim myString As String = "This string is immutable"
myString = "Or is it?"
여기서는 값을 지정하여 문자열 변수를 만든 다음 해당 값이 변경됩니다.
더 구체적으로, 첫 번째 줄에서 형식 String
의 인스턴스가 만들어지고 값 This string is immutable
이 지정됩니다. 예제의 두 번째 줄에서는 새 인스턴스가 만들어지고 값 Or is it?
이 지정되며 문자열 변수는 첫 번째 인스턴스에 대한 참조를 삭제하고 새 인스턴스에 대한 참조를 저장합니다.
다른 내장 데이터 형식 String
과 달리 참조 형식입니다. 참조 형식의 변수가 함수 또는 서브루틴에 인수로 전달되면 데이터가 저장된 메모리 주소에 대한 참조가 문자열의 실제 값 대신 전달됩니다. 따라서 이전 예제에서 변수의 이름은 동일하게 유지되지만 새 값을 보유하는 클래스의 String
새 인스턴스와 다른 인스턴스를 가리킵니다.
참고하십시오
.NET