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

위 예제에서 코드의 동작을 하나씩 살펴보면,

  • split("")은 문자 1개씩 분리하여 리스트로 변환
  • reversed는 리스트의 저장 순서를 역순으로 변경, Iterable 리턴
  • join()은 리스트의 요소들을 하나의 문자열로 합치고 리턴
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들의 리스트를 하나의 문자열로 합칩니다.

아래와 같이 문자열의 순서를 역순으로 변경할 수 있습니다.

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
Loading script...
codechachaCopyright ©2019 codechacha