15

charシーケンスを通過せずにString、Javaで逆にする方法はありますか

4

12 に答える 12

21

これを試して、

String s = "responses";
StringBuilder builder = new StringBuilder(s);
System.out.println(builder.reverse());
于 2012-09-06T17:51:21.867 に答える
20

StringBuilder#reverse()メソッドを使用できます:

String reverse = new StringBuilder(originalString).reverse().toString();
于 2012-09-06T17:50:52.397 に答える
10

使い方StringBuilder'sStringBuffer's方法...reverse()

 public class StringReverse
{
  public static void main(String[] args)
  {
  String string=args[0];
  String reverse = new StringBuffer(string).reverse().toString();
  System.out.println("\nString before reverse: "+string);
  System.out.println("String after reverse: "+reverse);
  } 
} 

StringBufferスレッドセーフであり、スレッドセーフではStringBuilderありません..... StringBuilder Java 1.5 から導入されました。これらの操作をより高速に実行できるため、心配する同時実行性はありません....

于 2012-09-06T17:50:52.100 に答える
5

reverse() メソッドを試してください:

StringBuilder stringName = new StringBuilder();
String reverse = stringName.reverse().toString();
于 2012-09-06T17:53:37.183 に答える
3

それをしなければならない場合:

char シーケンスを経由せずに

反復の簡単な方法の 1 つは次のとおりです。

public String reverse(String post) {                
    String backward = "";
    for(int i = post.length() - 1; i >= 0; i--) {
        backward += post.substring(i, i + 1);
    }        
    return backward;
} 
于 2013-06-21T08:17:53.943 に答える
3

StringBuilder を使用できます。

String word = "Hello World!";
StringBuilder sb = new StringBuilder(word);

System.out.print(sb.reverse());
于 2012-09-07T03:43:32.910 に答える
2

文字列バッファを使用して文字列を逆にすることができます。

public String reverse(String s) {
    return new StringBuffer(s).reverse().toString();
}

これを行うもう 1 つの興味深い方法は、再帰です。

public String reverse(String s) {
    if (s.length() <= 1) { 
        return s;
    }
    return reverse(s.substring(1, s.length())) + s.charAt(0);
}
于 2012-09-06T18:06:37.280 に答える
1

ここに、 string からのネットワークを使用せずに、部分文字列メソッドと o(n) を使用した同じサンプルがあります。substring を使用すると、完全な文字列メモリが保持されることを認識しています。

for(int i = 0; i < s.length(); i++)    {
    s = s.substring(1, s.length() - i) + s.charAt(0) + s.substring(s.length() - i);
    System.out.println(s);
}

これはあなたを助けるかもしれません!!

于 2014-03-26T16:56:13.843 に答える
1
public class RevString {
  public static void main(String[] args) {
    String s="jagan";
    String rev="";
    for (int i=s.length()-1;i>=0;i--) {
      rev=rev+s.charAt(i);
    }
     System.out.println("Reverse String is: "+rev);
  }
}
于 2016-10-28T03:26:10.760 に答える