競プロの問題を解いていると、文字列の反転が必要になることがある。以前は、文字列 (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(); }