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(包括)延伸到 endIndex,exclusive。 | 
| 8 | toString() | 返回此对象的字符串表示形式。 | 
| 9 | codeUnitAt() | 返回给定索引处的16位UTF-16代码单元。 | 
