简单的方法来反转字符串

没有经过char序列,有没有办法在Java中反转String

尝试这个,

 String s = "responses"; StringBuilder builder = new StringBuilder(s); System.out.println(builder.reverse()); 

您可以使用StringBuilder#reverse()方法 :

 String reverse = new StringBuilder(originalString).reverse().toString(); 

使用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引入的 ,因为它可以更快地完成那些没有任何并发​​性操作的操作….

尝试reverse()方法:

 StringBuilder stringName = new StringBuilder(); String reverse = stringName.reverse().toString(); 

你可以使用StringBuilder ..

 String word = "Hello World!"; StringBuilder sb = new StringBuilder(word); System.out.print(sb.reverse()); 

您可以使用String buffer来反转字符串。

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

另一个有趣的方法是递归。

 public String reverse(String s) { if (s.length() <= 1) { return s; } return reverse(s.substring(1, s.length())) + s.charAt(0); } 

“没有通过char序列..” – 一个简单的方法:

 public String reverse(String post) { String backward = ""; for(int i = post.length()-1; i >= 0; i--) { backward = backward + post.substring(i, i+1); } return backward; } 

这是使用递归的方法 –

 public static String reverse(String s1){ int l = s1.length(); if (l>1) return(s1.substring(l-1) + reverse(s1.substring(0,l-1))); else return(s1.substring(0)); } 

使用最少的API支持。 一个简单的算法。

 static String reverse(String str) { char[] buffer = str.toCharArray(); for (int i = 0; i < buffer.length/2; ++i){ char c = buffer[i]; buffer[i] = buffer[buffer.length-1-i]; buffer[buffer.length-1-i] = c; } return new String(buffer); } 

这里我有一个相同的样本使用substring方法和o(n)而不使用字符串中的任何nethods。 我知道使用子字符串将保存完整的字符串内存。

 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); } 

这可能对你有所帮助!!

 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); } } 

我还没有看到任何简单的方法。 这是适合的方法:


使用循环:


  String d = "abcdefghij"; char b[] = new char[d.length()];// new array; int j=0; // for the array indexing for(int i=d.length()-1;i>=0;i--){ b[j] = d.charAt(i); // input the last value of d in first of b ie b[0] = d[n-1] j++; } System.out.println("The reverse string is: "+String.valueOf(b)); 

输出是 The reverse string is: jihgfedcba


简单的逻辑是:

array[i] = array[ni]; 其中i是迭代,n是数组的总长度