技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

Javaで文字列を反転する

競プロの問題を解いていると、文字列の反転が必要になることがある。以前は、文字列 (String) を char 型の配列に toCharArray() で変換し、char 型の配列を反転するロジックを自作してそれを使用し、その後に String.valueOf() で String に戻していた。
しかし、ちょっと調べてみると、StringBuffer クラスに reverse() があり、これを使うと簡単に反転できるようだ。使い方は、例えば以下のような感じ。

        Scanner sc = new Scanner(System.in);
        String input = sc.next();
        StringBuffer sb = new StringBuffer(input);
        String reversed = sb.reverse().toString();
        System.out.print(reversed);

以下にメソッド化したので、今後は時間短縮のためこれを使うことにする。

    // String の文字列を反転する。
    String reverseString (String str) {
        if (str == null) {
            throw new IllegalArgumentException("Input string is null.");
        }
        StringBuffer sb = new StringBuffer(str);
        return sb.reverse().toString();
    }