我想知道是否有像 PHP 的strrev()这样的 Dart 函数。如果没有,您能否向我展示如何自己制作的任何源代码?
谢谢你。
列表可以反转,因此您也可以使用它来反转字符串:
new String.fromCharCodes("input".charCodes.reversed.toList());
作为一个全新的 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));
}
可能是将来在 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);
}
试试这个而不是其他的。
String try(str) {
return str.split('').reversed.join('');
}
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