0

我想知道是否有像 PHP 的strrev()这样的 Dart 函数。如果没有,您能否向我展示如何自己制作的任何源代码?

谢谢你。

4

5 回答 5

3

列表可以反转,因此您也可以使用它来反转字符串:

new String.fromCharCodes("input".charCodes.reversed.toList());
于 2013-02-09T23:50:20.443 回答
2

作为一个全新的 Dart 用户(截至今天下午),我还没有在 API 中找到一个。但是,在任何语言中反转字符串都非常容易。这是 Dart 形式的典型 O(n) 解决方案:

String reverse(String s) {
  var chars = s.splitChars();
  var len   = s.length - 1;
  var i     = 0;

  while (i < len) {
    var tmp = chars[i];
    chars[i] = chars[len];
    chars[len] = tmp;
    i++;
    len--;
  }

  return Strings.concatAll(chars);
}

void main() {
  var s = "dog";
  print(s);
  print(reverse(s));
}
于 2012-10-20T03:12:06.370 回答
1

可能是将来在 List (dart issue 2804) 中实现标准化的 reverse() 方法,以下是比以前的典型解决方案快 8 到 10 倍左右:

String reverse(String s) {
  // null or empty
  if (s == null|| s.length == 0)
    return s;
  List<int> charCodes = new List<int>();
  for (int i = s.length-1; i>= 0; i-- )
    charCodes.addLast(s.charCodeAt(i)) ;
  return new String.fromCharCodes(charCodes);
}
于 2012-10-21T22:24:47.433 回答
1

试试这个而不是其他的。

String try(str) {
  return str.split('').reversed.join('');
}
于 2019-03-20T14:23:35.297 回答
0
String theString  = "reverse the string";

List<String> reslt = theString.split("");
List<String> reversedString = List.from(reslt.reversed);  
String  joinString = reversedString.join("");
print(joinString);

输出: gnirts eht esrever

于 2021-07-04T15:40:25.017 回答