Dart字串


Dart字串資料型別表示一系列字元。Dart字串是一系列UTF 16程式碼單元。

Dart中的字串值可以使用單引號或雙引號或三引號表示。單行字串使用單引號或雙引號表示。三引號用於表示多行字串。

在Dart中表示字串值的語法如下所示 -

語法

String  variable_name = 'value'  

// 或者 
String  variable_name = ''value''  

// 或者 
String  variable_name = '''line1 
line2'''  

// 或者 
String  variable_name= ''''''line1 
line2''''''

以下範例演示了如何在Dart中使用String資料型別。

void main() { 
   String str1 = 'this is a single line string'; 
   String str2 = "this is a single line string"; 
   String str3 = '''this is a multiline line string'''; 
   String str4 = """this is a multiline line string"""; 

   print(str1);
   print(str2); 
   print(str3); 
   print(str4); 
}

它將產生以下輸出 -

this is a single line string 
this is a single line string 
this is a multiline line string 
this is a multiline line string

字串是不可變的。但是,字串可以進行各種操作,結果字串可以儲存為新值。

字串插值

通過將值附加到靜態字串來建立新字串的過程稱為連線或插值。它是將字串新增到另一個字串的過程。

運算子加運算子(+)是連線/插入字串的常用機制。

範例1

void main() { 
   String str1 = "hello"; 
   String str2 = "world"; 
   String res = str1+str2; 

   print("The concatenated string : ${res}"); 
}

執行上面範例程式碼,得到以下結果 -

The concatenated string : Helloworld

範例2

可以使用${}來插入字串中Dart表示式的值。如下範例 -

void main() { 
   int n=1+1; 

   String str1 = "The sum of 1 and 1 is ${n}"; 
   print(str1); 

   String str2 = "The sum of 2 and 2 is ${2+2}"; 
   print(str2); 
}

執行上面範例程式碼,得到以下結果 -

The sum of 1 and 1 is 2 
The sum of 2 and 2 is 4

字串屬性

下表中列出的字串屬性都是唯讀的。

編號 屬性 描述
1 codeUnits 返回此字串的UTF-16程式碼單元的不可修改列表。
2 isEmpty 如果此字串為空,則返回true
3 length 返回字串的長度,包括空格,製表符和換行符。

操縱字串的方法

Dart語言的core庫中的String類還提供了操作字串的方法。其中一些方法如下 -

編號 屬性 描述
1 toLowerCase() 將此字串中的所有字元轉換為小寫。
2 toUpperCase() 將此字串中的所有字元轉換為大寫。
3 trim() 返回沒有任何前導和尾隨空格的字串。
4 compareTo() 將此物件與另一物件進行比較。
5 replaceAll() 用給定值替換與指定模式匹配的所有子字串。
6 split() 在指定分隔符的匹配處拆分字串並返回子字串列表。
7 substring() 返回此字串的子字串,字串從startIndex(包括)延伸到endIndexexclusive
8 toString() 返回此物件的字串表示形式。
9 codeUnitAt() 返回給定索引處的16位元UTF-16程式碼單元。