Visual Basic 中的字串基礎

更新:2007 年 11 月

String 資料型別會代表一系列字元 (每個字元又分別代表 Char 資料型別的執行個體 (Instance))。本主題將介紹 Visual Basic 中字串的基本概念。

字串變數

字串的執行個體可以指派為代表一系列字元的常值 (Literal)。例如:

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 會將字串常值 (String Literal) 中的兩個引號,解譯為字串中的一個引號。下列範例展示在字串中包含引號的正確方法:

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

在上述範例中,Look 一字前面的兩個引號,會變成字串中的一個引號。行結尾處的三個引號,則表示字串中的一個引號以及字串結束字元。

字串中的字元

字串可以想成一系列的 Char 值,而 String 型別具有內建函式,可以讓您對字串執行許多操作,這些操作類似於陣列所允許的操作。如同 .NET Framework 中的所有陣列,這些都是以零起始的陣列。您可以透過 Chars 屬性參考字串中的特定字元,提供用以存取字串中特定位置之字元的方式。例如:

Dim myString As String = "ABCDE"
Dim myChar As Char
' The value of myChar is "C".
myChar = myString.Chars(3)

在上述範例中,字串的 Chars 屬性傳回字串中的第四個字元 (即 D),並將它指派給 myChar。您也可以透過 Length 屬性,取得特定字串的長度。如果您需要對字串執行多個陣列型別操作,則可以使用字串的 ToCharArray 函式,將它轉換為 Char 執行個體的陣列。例如:

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?,則字串變數會捨棄對第一個執行個體的參考,然後儲存對新執行個體的參考。

和其他內建 (Intrinsic) 資料型別不同的是,String 是個參考型別 (Reference Type)。當參考型別的變數被當做引數傳遞給函式或副程式時,會被傳遞的是資料儲存位置所在的記憶體位址參考,而不是字串的實際值。因此在之前的範例中,變數名稱還是相同,但它將指向 String 類別的不同的新執行個體 (該執行個體中儲存有新的值)。

請參閱

參考

String 資料型別 (Visual Basic)

Char 資料型別 (Visual Basic)

其他資源

Visual Basic 中的字串簡介

基本字串作業