2012-04-06 13 views
-3

私は文字列を "saral"としましょう。私はこの文字列を逆にしたい。 文字列クラス自体を使ってどのように行うことができますか?文字列クラス自体を通して文字列を逆転させます

文字列バッファまたは文字列ビルダーではなく、文字列クラスを介してのみ。 Java文字列は不変であり、彼らは何のreverse()方法を提供しないので、それを行うには、シンプルで効率的な方法はありません

public static String reverse(String in) { 
    int pos = in.length() - 1; 
    return pos == -1 ? "" : in.substring(pos) + reverse(in.substring(0, pos)); 
} 
+8

不思議の国のアリス - なぜですか? –

+2

(あなたの記事のいたるところにランダムな句読点を入れてはいけません) – Mat

+1

Loksは、私には普通のダムアカデミアの質問のようです。 –

答えて

3

あなたは再帰関数、のようなものを使用することができます。 (+オペレータ経由)文字列の連結は、実際のStringBufferを作成するため、これはかなり非効率的であることを

public static String reverse(String source) { 
    String target = ""; 
    for (int i=0; i<source.length(); i++) { 
    target = source.charAt(i) + target; 
    } 
    return target; 
} 

注:しかし、あなたは新しい文字列に文字を逆の順序でターゲット文字列を反復して付加することで反転した文字列を構築することができあなたは一時的なオブジェクトの束を割り当てています。

+0

こんにちは、ありがとう、あなたは他の単純な三項演算子を交換してください、そして再びコードの一部の下にこれを書くことができますか?下見するのに大いに役立つ、.. !! – dghtr

+7

@SARAL三元演算子を単純なif-elseに置き換えることはできますか?あなたは "三元演算子"という名前を知っているので、私はあなたができることを願っています! –

1

+0

私はそれが実際には最近のボンネットの下にある 'StringBuilder'だと思います。 – DNA

関連する問題