Marek Lukinic
Marek Lukinic

Reputation: 87

Google Dart: Dart strrev() function

I'd like to know if there's any Dart function like PHP's strrev(). If not, could you please show my any source code how to make it on my own?

Thank you.

Upvotes: 0

Views: 1562

Answers (5)

Devaski
Devaski

Reputation: 431

String theString  = "reverse the string";

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

Ouput: gnirts eht esrever

Upvotes: 0

kishansinh
kishansinh

Reputation: 101

try this instead of others.

String try(str) {
  return str.split('').reversed.join('');
}

Upvotes: 1

Knorre
Knorre

Reputation: 31

Lists can be reversed, so you can use this to reverse a String as well:

new String.fromCharCodes("input".charCodes.reversed.toList());

Upvotes: 3

ARA
ARA

Reputation: 1316

May be a standardized reverse() method will be implemented in future in List (dart issue 2804), the following is about 8 to 10 times faster than the previous typical solution:

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);
}

Upvotes: 1

jmdeldin
jmdeldin

Reputation: 5404

I haven't found one in the API, as a brand new Dart user (as of this afternoon). However, reversing a string is pretty easy to do in any language. Here's the typical O(n) solution in Dart form:

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));
}

Upvotes: 2

Related Questions