Flutter/Dart - 文字列の順序を反転

文字列を逆順に反転する方法を紹介します。

1. split(), reversed を使った方法

以下のように split(), reversed, join() を使って文字列を反転することができます。

void main() {

    String str = "Hello World";

    String newStr = str.split("").reversed.join();
    print(newStr);
}

Output:

dlroW olleH

上記の例でコードの動作を1つずつ見てみると、

  • split("") は 1 文字ずつ分離してリストに変換
  • reversed はリストの格納順序を逆順に変更、Iterable 戻り
  • join()はリストの要素を1つの文字列にまとめて返します
void main() {

    String str = "Hello World";

    List list = str.split("");
    print(list);

    var iter = list.reversed;
    print(iter);

    String newStr = iter.join();
    print(newStr);
}

Output:

[H, e, l, l, o,  , W, o, r, l, d]
(d, l, r, o, W,  , o, l, l, e, H)
dlroW olleH

2. String.fromCharCodes() を使った方法

String.codeUnits は文字列の文字を UTF-16 の code に変換し、 String.fromCharCodes() は逆順に変更された、 code のリストを 1 つの文字列にまとめます。

以下のように、文字列の順序を逆順に変更できます。

void main() {

    String str = "Hello World";

    String newStr = String.fromCharCodes(str.codeUnits.reversed);
    print(newStr);
}

Output:

dlroW olleH

3. StringBufferを使った方法

forステートメントを使用して文字列を逆順に巡回しながら、StringBufferに追加して文字列に変換できます。

void main() {

    String str = "Hello World";

    var sb = StringBuffer();
    for (var i = str.length - 1; i >= 0; --i) {
        sb.write(str[i]);
    }

    String newStr = sb.toString();
    print(newStr);
}

Output:

dlroW olleH
codechachaCopyright ©2019 codechacha