dart:core
庫中String
類的用法介紹如下。
一係列 UTF-16 代碼單元。
字符串主要用於表示文本。一個字符可以由多個代碼點表示,每個代碼點由一個或兩個代碼單元組成。例如,巴布亞新幾內亞國旗字符需要四個代碼單元來表示兩個代碼點,但應將其視為單個字符:"🇵🇬"。不支持標誌字符的平台可能會顯示字母"PG"。如果代碼點被交換,它將變成瓜德羅普島標誌"🇬🇵" ("GP")。
字符串可以是單行或多行。單行字符串使用匹配的單引號或雙引號編寫,多行字符串使用三引號編寫。以下都是有效的 Dart 字符串:
'Single quotes';
"Double quotes";
'Double quotes in "single" quotes';
"Single quotes in 'double' quotes";
'''A
multiline
string''';
"""
Another
multiline
string""";
字符串是不可變的。雖然您不能更改字符串,但您可以對創建新字符串的字符串執行操作:
const string = 'Dart is fun';
print(string.substring(0, 4)); // 'Dart'
您可以使用加號 (+
) 運算符來連接字符串:
const string = 'Dart ' + 'is ' + 'fun!';
print(string); // 'Dart is fun!'
相鄰的字符串文字會自動連接:
const string = 'Dart ' 'is ' 'fun!';
print(string); // 'Dart is fun!'
您可以使用 ${}
在字符串中插入 Dart 表達式的值。評估標識符時可以省略花括號:
const string = 'dartlang';
print('$string has ${string.length} letters'); // dartlang has 8 letters
字符串由一係列 Unicode UTF-16 代碼單元表示,可通過 codeUnitAt 或 codeUnits 成員訪問:
const string = 'Dart';
final firstCodeUnit = string.codeUnitAt(0);
print(firstCodeUnit); // 68, aka U+0044, the code point for 'D'.
final allCodeUnits = string.codeUnits;
print(allCodeUnits); // [68, 97, 114, 116]
可以通過索引運算符訪問各個代碼單元的字符串表示形式:
const string = 'Dart';
final charAtIndex = string[0];
print(charAtIndex); // 'D'
字符串的字符以 UTF-16 編碼。解碼結合了代理對的 UTF-16 會產生 Unicode 代碼點。遵循與 Go 類似的術語,Dart 使用名稱 'rune' 來表示表示 Unicode 代碼點的整數。使用 runes 屬性獲取字符串的符文:
const string = 'Dart';
final runes = string.runes.toList();
print(runes); // [68, 97, 114, 116]
對於由代理對組成的基本多語言平麵(平麵 0)之外的字符,runes 組合該代理對並返回一個整數。例如,符文值為 0x1D11E 的音樂劇 G-clef ('𝄞') 的 Unicode 字符由 UTF-16 代理對組成:0xD834
和 0xDD1E
。使用 codeUnits 返回代理對,使用 runes
返回它們的組合值:
const clef = '\u{1D11E}';
for (final item in clef.codeUnits) {
print(item.toRadixString(16));
// d834
// dd1e
}
for (final item in clef.runes) {
print(item.toRadixString(16)); // 1d11e
}
String
類無法擴展或實現。嘗試這樣做會產生編譯時錯誤。
其他資源
- StringBuffer 以增量方式有效地構建字符串。
- RegExp 使用正則表達式。
- 字符串和正則表達式
- 實現的類型
相關用法
- Dart String.replaceAll用法及代碼示例
- Dart StringList.first用法及代碼示例
- Dart String.fromCharCodes用法及代碼示例
- Dart String.trim用法及代碼示例
- Dart String.lastIndexOf用法及代碼示例
- Dart String.replaceRange用法及代碼示例
- Dart StringList.length用法及代碼示例
- Dart String.toLowerCase用法及代碼示例
- Dart String.substring用法及代碼示例
- Dart String.length用法及代碼示例
- Dart String.padRight用法及代碼示例
- Dart String.fromEnvironment用法及代碼示例
- Dart StringList.clear用法及代碼示例
- Dart StringList.elementAt用法及代碼示例
- Dart String.trimLeft用法及代碼示例
- Dart StringBuffer用法及代碼示例
- Dart String.compareTo用法及代碼示例
- Dart String.trimRight用法及代碼示例
- Dart String.contains用法及代碼示例
- Dart String.indexOf用法及代碼示例
- Dart String.split用法及代碼示例
- Dart String.startsWith用法及代碼示例
- Dart String.splitMapJoin用法及代碼示例
- Dart String.operator_get用法及代碼示例
- Dart String.operator_multiply用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 String class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。