String
数据类型表示一系列字符。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数据类型。
String str1 = '这是一个单行字符串';
String str2 = "这是一个单行字符串";
String str3 = '''这是一个多行字符串''';
String str4 = """这是一个多行字符串""";
print(str1);
print(str2);
print(str3);
print(str4);
输出
这是一个单行字符串
这是一个多行字符串
这是一个多行字符串
字符串是不可变的。但是,字符串可以进行各种操作,结果字符串可以存储为新值。
通过将值附加到静态字符串来创建新字符串的过程称为连接或插值。换句话说,它是将字符串添加到另一个字符串的过程。
运算符加(+
)是连接/插入字符串的常用机制。
例1
String str1 = "hello";
String str2 = "world";
String res = str1+str2;
print("The concatenated string : ${(res)}");
输出
The concatenated string : helloworld
例2
可以使用${()}
来插入字符串中Dart表达式的值。以下示例说明了相同的内容。
String num1 = "The sum of 1 and 1 is ${(n)}";
print(num1);
String num2 = "The sum of 2 and 2 is ${(2+2)}";
print(num2);
输出
The sum of 1 and 1 is 2
The sum of 2 and 2 is 4
属性 | 描述 |
---|---|
codeUnits 属性 |
返回给定字符串的UTF-16代码单元列表 |
isEmpty 属性 |
如果字符串为空,则返回 true |
length 属性 |
返回字符串的长度,包括空格,制表符和换行符 |
codeUnits
属性返回给定字符串的UTF-16代码单元列表。
string.codeUnits
String str = "Hello";
print(str.codeUnits);
输出
[72, 101, 108, 108, 111]
isEmpty
属性如果字符串为空,则返回 true ; 否则返回 false 。
string.isEmpty
String str = "Hello";
print(str.isEmpty);
输出
false
length
属性返回字符串的长度,包括空格,制表符和换行符。
string.length
String strHello = "Hello All";
print("The length of the string is: ${(strHello.length)}");
输出
The length of the string is: 9
dart:core
库中的String类还提供了操作字符串的方法。其中一些方法如下:
方法 | 描述 |
---|---|
toLowerCase() 方法 |
将给定字符串中所有字符转换为小写字母 并返回新的字符串 |
toUpperCase() 方法 |
将给定字符串中所有字符转换为大写字母 并返回新的字符串 |
trim() 方法 |
删除所有前导和尾随空格 并返回一个新字符串 但此方法不会丢弃两个字符串之间的空格 |
compareTo(other-string) 方法 |
字符串比较 返回 1、0 或 -1 |
replaceAll(from, replace) 方法 |
用给定值替换与指定模式匹配的所有子字符串 |
split(pattern) 方法 |
在指定分隔符的匹配处拆分字符串 并返回子字符串列表 |
substring(startIndex, endIndex) 方法 |
返回此字符串的子字符串, 该字符串从startIndex(包括) 延伸到endIndex(不包括)。 |
toString() 方法 |
返回对象的字符串表示形式 |
codeUnitAt(index) 方法 |
返回给定索引处的16位UTF-16编码 |
toLowerCase()
方法通过将给定字符串中的所有字符转换为小写字母来返回新字符串。
string.toLowerCase()
返回一个字符串。
String strLowerUpper = "HeLlo WoRLd";
print("${(strLowerUpper)} to lower : ${(strLowerUpper.toLowerCase())}");
输出
HeLlo WoRLd to lower : hello world
toUpperCase()
方法通过将给定字符串中的所有字符转换为大写字母来返回新字符串。
string.toUpperCase()
返回一个字符串。
String strLowerUpper = "HeLlo WoRLd";
print("${(strLowerUpper)} to upper : ${(strLowerUpper.toUpperCase())}");
输出
HeLlo WoRLd to upper : HELLO WORLD
trim()
方法删除所有前导和尾随空格并返回一个新字符串。但是,此方法不会丢弃两个字符串之间的空格。
string.trim()
返回一个字符串。
String strTrim = " hello world ";
print("\"${(strTrim)}\" => \"${(strTrim.trim())}\"");
输出
" hello world " => "hello world"
compareTo(other-string)
方法比较两个字符串并返回值。
string.compareTo(other string)
String strCompare1 = "A";
String strCompare2 = "B";
String strCompare3 = "A";
print("${(strCompare1)} compare to ${(strCompare2)}: ${(strCompare1.compareTo(strCompare2))}");
print("${(strCompare2)} compare to ${(strCompare1)}: ${(strCompare2.compareTo(strCompare1))}");
print("${(strCompare1)} compare to ${(strCompare3)}: ${(strCompare1.compareTo(strCompare3))}");
输出
A compare to B: -1
B compare to A: 1
A compare to A: 0
replaceAll(from, replace)
方法用给定值替换与指定模式匹配的所有子字符串。
string.replaceAll(Pattern from, String replace)
返回一个字符串。
String strReplace = "Hello World";
print("New String: ${strReplace.replaceAll('World','ALL')}");
输出
New String: Hello ALL
split(pattern)
方法在指定分隔符的匹配处拆分字符串并返回子字符串列表。
string.split(Pattern pattern)
pattern - 分隔符。
返回String对象的列表。
String strSplit = "Today. is. Thursday";
print("String List: ${strSplit.split('.')}");
输出
String List: [Today, is, Thursday]
substring(startIndex, endIndex)
方法返回此字符串的子字符串,该字符串从startIndex(包括)延伸到endIndex(不包括)。
注:
索引基于零,即第一个字符的索引为0
,依此类推。
返回一个字符串。
String strSub = "0123456789";
print("New String: ${strSub.substring(6)}");
print("New String: ${strSub.substring(2,6)}");
输出
New String: 6789
New String: 2345
toString()
方法返回对象的字符串表示形式。
number.toString()
返回一个字符串。
var numToString = 5.5;
var strNumToString = numToString.toString();
print("${(numToString)} to string is ${(strNumToString)}");
print("${(strNumToString)} is string? ${(strNumToString is String)}");
输出
5.5 to string is 5.5
5.5 is string? true
codeUnitAt(index)
方法返回给定索引处的16位UTF-16代码单元。
string.codeUnitAt(index)
索引 - 表示字符串中的字符索引。
返回一个整数。
var res = "Good Day";
print("Code Unit of index 0 (G): ${res.codeUnitAt(0)}");
输出
Code Unit of index 0 (G): 71
https://www.codingdict.com/article/21918