我们知道,在Java中将字符串反转有很多种方法,但是最常用的有哪几种呢?哪种方法的速度最快呢?今天笔者在这总结了四种字符串反转的方法,希望能够对大家有所帮助。
字符串反转方法
(1)通过StringBuilder的reverse()方法,号称速度最快:
public class ReverseStringBuilder {
public static void main(String[] args) {
// TODO Auto-generated method stub
String d="acfbnm";//字符串自己定义
ReverseStringBuilder(d);//调用ReverseStringBuilder()方法
}
public static String ReverseStringBuilder(String s) {
//具体实现方法
StringBuilder sb = new StringBuilder(s);
String AfterReverse=sb.reverse().toString();
System.out.println(AfterReverse);
return AfterReverse;
}
}
结果:
(2)通过递归实现,据说比较高大上:
public class ReverseRecursive {
public static void main(String[] args) {
String f="123456";
System.out.println(ReverseRecursive(f));
}
public static String ReverseRecursive(String s) {
int length =s.length();
if(length<=1)
return s;
String left=s.substring(0, length/2);
String right=s.substring(length/2,length);
//分为两部分
String AfterReverse = ReverseRecursive(right)+
ReverseRecursive(left);
//对两部分分别递归调用函数
return AfterReverse;
}
}
结果:
(3)通过charAt()方法:
/*
*
* 这种方法是通过charAt()方法获得每一个char字符,i=0时获得第一个字符a,然后
* 赋给reverse,此时这里面仅包含字符a;当i=1时,然后获得第二个字符b,然后加上reverse
* 的值在赋值给reverse,此时reverse=“ba”*/
public class CharAtreverse {
public static void main(String[] args) {
String f="abcdefg";
CharAtreverse(f);
}
public static String CharAtreverse(String s) {
int length = s.length();
String reverse = "";
for(int i=0;i<length;i++)
reverse = s.charAt(i)+reverse;
System.out.println(reverse);
return reverse;
}
}
结果:
(4)通过String的toCharArray()方法,即字符数组:
//通过String的toCharArray()方法可以获得字符串中的每一个字符串并且
//转化为字符数组,然后使用一个空的字符串从后向前一个个
//的拼接为新的字符串。
public class ReverseCharArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
String f="abcdrf";
ReverseCharArray(f);
}
public static String ReverseCharArray(String s) {
char[] array=s.toCharArray();
String reverse = "";
for(int i=array.length-1;i>=0;i--) {
reverse+=array[i];
}
System.out.println(reverse);
return reverse;
}
}
结果:
以上内容是笔者整理的四种字符串反转方式,希望对大家有所帮助!
谢谢大家!我们一起成长!