操作字符串,是JAVA中的一项常用的而且也是一种基本的能力。对于反转字符串这一看似简单的操作,里面体现了好多的字符串的应用,下面结合自己的想法与网上的方法,总结反转字符串基本上有以下一些方法。以方法表现的性能从高到底列出:
第一种方法:
public static String getRevString(String str){
String a = str;
char[] c = a.toCharArray();
int i=a.length();
i--;
char temp;
for (int count=0;count<i;count++,i-- )
{
temp=c[count];
c[count]=c[i];
c[i]=temp;
}
return new String(c,0,a.length());
}
第二种方法:
public static String getRevString(String str){
StringBuffer sb = new StringBuffer(str);
String returnStr = sb.reverse().toString();
return returnStr;
}
第三种方法:
public static String getRevString(String str){
char[] temp = str.toCharArray();
int length = temp.length;
char[] recive = new char[length];
for(int i=length;i>0;i--){
recive[length-i] = temp[i-1];
}
String temp2 = new String(recive);
return temp2;
}
第四种方法:
public static String getRevString(String s){
StringBuffer sb = new StringBuffer();
for ( int i = s.length() - 1; i >= 0; i--) {
sb .append(s.charAt(i));
}
return sb.toString();
}
最后一种方法是用递归的方法实现的:
其方法体如下:
public static String getRevString(String strTest){
if(strTest.length() == 1)
return strTest;
String strResult = strTest.substring(strTest.length() -1,strTest.length());
strResult += getRevString (strTest.substring(0,strTest.length() -1));
return strResult;
}
这种递归的方法当要反转的字符串少时,不会出现错误,但当要反转的字转串比较多时,这种方法就会报堆栈溢出错误,还没搞清是怎么回事.这种方法的性能也不是太好.
转载自:http://wusaihe.blog.163.com/blog/static/7239597120104129531235/
第一种方法:
public static String getRevString(String str){
String a = str;
char[] c = a.toCharArray();
int i=a.length();
i--;
char temp;
for (int count=0;count<i;count++,i-- )
{
temp=c[count];
c[count]=c[i];
c[i]=temp;
}
return new String(c,0,a.length());
}
第二种方法:
public static String getRevString(String str){
StringBuffer sb = new StringBuffer(str);
String returnStr = sb.reverse().toString();
return returnStr;
}
第三种方法:
public static String getRevString(String str){
char[] temp = str.toCharArray();
int length = temp.length;
char[] recive = new char[length];
for(int i=length;i>0;i--){
recive[length-i] = temp[i-1];
}
String temp2 = new String(recive);
return temp2;
}
第四种方法:
public static String getRevString(String s){
StringBuffer sb = new StringBuffer();
for ( int i = s.length() - 1; i >= 0; i--) {
sb .append(s.charAt(i));
}
return sb.toString();
}
最后一种方法是用递归的方法实现的:
其方法体如下:
public static String getRevString(String strTest){
if(strTest.length() == 1)
return strTest;
String strResult = strTest.substring(strTest.length() -1,strTest.length());
strResult += getRevString (strTest.substring(0,strTest.length() -1));
return strResult;
}
这种递归的方法当要反转的字符串少时,不会出现错误,但当要反转的字转串比较多时,这种方法就会报堆栈溢出错误,还没搞清是怎么回事.这种方法的性能也不是太好.
转载自:http://wusaihe.blog.163.com/blog/static/7239597120104129531235/