在这篇文章中,学习如何以多种方式反转一个字符串。它还包括用Unicode utf-8字符反转一个字符串。
我们有多种方法可以做到这一点。Dart提供了一个内置的dart:convert 库,以UTF8格式对各种对象进行编码和解码。
如何在Dart中以相反的顺序处理字符串
这个例子接收输入的字符串并按相反的顺序进行转换。
- 首先,使用
split()方法将给定的字符串分割成字符。它返回一个字符列表。 - 使用
reversed属性将列表反转 - 最后,使用join()方法连接字符列表。
下面是一个在Dart中逆转字符串的示例代码。
import 'dart:convert';
main() {
final str = "Welcome to my site";
print(str); //Welcome to my site
print(str.split('').reversed.join()); // etis ym ot emocleW
}
输出
Welcome to my site
etis ym ot emocleW
上面的例子只适用于ASCII文本。
如果你想按相反的顺序转换UTF-8字符串,它将不起作用。
如何按相反的顺序转换Unicode字符串?
这个例子将一个包含表情符号和代码单位的Unicode字符串转换为反序。
我们有多种方法可以做到
第一种方法,使用code units :
- 首先,使用
codeUnits属性获得一个字符串的代码单位,该属性返回字符串中每个字符的UTF-16代码单位。 - 使用
reversed属性对代码单位字符串进行反转。 - 使用
fromCharCodes方法从一个给定的代码单位可迭代的字符中转换并创建一个新的字符串 这里是一个示例代码
main() {
var unicodeString = "unicode string \u{231B}"; //unicode string ⌛
print(unicodeString); //unicode string ⌛
print(String.fromCharCodes(unicodeString.codeUnits.reversed)); //⌛ gnirts edocinu
}
第二种方法,使用runes:
runes 是一个表示Unicode字符的类型。
- 首先,使用
runes属性获得字符串的代码单位,使用toList()方法返回字符串中每个字符的代码单位列表 - 使用
reversed属性反转代码单位列表。 - 使用
fromCharCodes方法从一个给定的代码单位可迭代字符中转换并创建一个新的字符串 这里是一个示例代码
main() {
var unicodeString = "unicode string \u{231B}"; //unicode string ⌛
print(unicodeString); //unicode string ⌛
var runeChars = unicodeString.runes.toList();
print(String.fromCharCodes(runeChars.reversed));⌛ gnirts edocinu
}
结论
总结一下。
学会了如何将一个字符串或ASCII和Unicode字符转换为反向顺序。