Dart| Flutter :以多种方式反转一个字符串的方法

1,018 阅读2分钟

在这篇文章中,学习如何以多种方式反转一个字符串。它还包括用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字符转换为反向顺序。