没有经过char序列,有任何方法可以在Java中反转String
答案 0 :(得分:21)
试试这个,
String s = "responses";
StringBuilder builder = new StringBuilder(s);
System.out.println(builder.reverse());
答案 1 :(得分:20)
您可以使用StringBuilder#reverse()
method:
String reverse = new StringBuilder(originalString).reverse().toString();
答案 2 :(得分:10)
使用StringBuilder's
或StringBuffer'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 引入的,以便更快地完成那些没有任何并发性操作的操作....
答案 3 :(得分:5)
尝试reverse()方法:
StringBuilder stringName = new StringBuilder();
String reverse = stringName.reverse().toString();
答案 4 :(得分:3)
您可以使用StringBuilder ..
String word = "Hello World!";
StringBuilder sb = new StringBuilder(word);
System.out.print(sb.reverse());
答案 5 :(得分:3)
如果我们必须这样做:
不经过char序列
迭代的一个简单方法是:
public String reverse(String post) {
String backward = "";
for(int i = post.length() - 1; i >= 0; i--) {
backward += post.substring(i, i + 1);
}
return backward;
}
答案 6 :(得分:2)
您可以使用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);
}
答案 7 :(得分:2)
这是使用递归的方法 -
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));
}
答案 8 :(得分:2)
使用最少的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);
}
答案 9 :(得分:1)
这里我有一个相同的样本使用substring方法和o(n)而不使用string中的任何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);
}
这可能对你有所帮助!!
答案 10 :(得分: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);
}
}
答案 11 :(得分:0)
我没有看到任何简单的方法。 以下是适合的方式:
<小时/> 使用循环:
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 i.e. b[0] = d[n-1]
j++;
}
System.out.println("The reverse string is: "+String.valueOf(b));
<小时/> 输出
The reverse string is: jihgfedcba
简单的逻辑是:
array[i] = array[n-i];
其中i是迭代,n是数组的总长度