「サラル」としましょう。この文字列を逆にしたい。文字列クラス自体を介してどのように行うことができますか?
文字列バッファーまたは文字列ビルダーではなく、文字列クラスのみを使用します。
「サラル」としましょう。この文字列を逆にしたい。文字列クラス自体を介してどのように行うことができますか?
文字列バッファーまたは文字列ビルダーではなく、文字列クラスのみを使用します。
次のような再帰関数を使用できます。
public static String reverse(String in) {
int pos = in.length() - 1;
return pos == -1 ? "" : in.substring(pos) + reverse(in.substring(0, pos));
}
Java 文字列は不変であり、メソッドを提供しないため、単純で効率的な方法はありませんreverse()
。ただし、ターゲット文字列を逆の順序で反復し、文字を新しい文字列の先頭に追加することで、逆の文字列を作成できます。
public static String reverse(String source) {
String target = "";
for (int i=0; i<source.length(); i++) {
target = source.charAt(i) + target;
}
return target;
}
これはかなり非効率的であることに注意してください。これは、文字列の連結 (+
演算子による) によって内部で StringBuffer が実際に作成され、一時オブジェクトの束が割り当てられるためです。