7 种将字符串反转的 Java 方法

来源:互联网 发布:密度板的甲醛 知乎 编辑:程序博客网 时间:2024/05/02 01:22
import java.util.Stack;
public class StringReverse {
  
 publicstatic String reverse1(String s) {
  intlength = s.length();
  if(length <= 1)
   returns;
  String left = s.substring(0, length /2);
  String right = s.substring(length /2, length);
  returnreverse1(right) + reverse1(left);
 }
  
 publicstatic String reverse2(String s) {
  intlength = s.length();
  String reverse ="";
  for(int i = 0; i < length; i++)
   reverse = s.charAt(i) + reverse;
  return reverse; //返回reverse
 }
  
 publicstatic String reverse3(String s) {
  char[] array = s.toCharArray();
  String reverse ="";
  for(int i = array.length - 1; i >=0; i--)
   reverse += array[i];
  
  returnreverse;
 }
  
 publicstatic String reverse4(String s) {
  returnnew StringBuffer(s).reverse().toString();
 }
  
 publicstatic String reverse5(String orig) {
  char[] s = orig.toCharArray();
  intn = s.length - 1;
  inthalfLength = n / 2;
  for(int i = 0; i <= halfLength; i++) {
   chartemp = s[i];
   s[i] = s[n - i];
   s[n - i] = temp;
  }
  returnnew String(s);
 }
  
 publicstatic String reverse6(String s) {
  
  char[] str = s.toCharArray();
  
  intbegin = 0;
  intend = s.length() - 1;
  
  while(begin < end) {
   str[begin] = (char) (str[begin] ^ str[end]);
   str[end] = (char) (str[begin] ^ str[end]);
   str[begin] = (char) (str[end] ^ str[begin]);
   begin++;
   end--;
  }
  
  returnnew String(str);
 }
  
 publicstatic String reverse7(String s) {
  char[] str = s.toCharArray();
  Stack<Character> stack =new Stack<Character>();
  for(int i = 0; i < str.length; i++)
   stack.push(str[i]);
  
  String reversed ="";
  for(int i = 0; i < str.length; i++)
   reversed += stack.pop();
  
  returnreversed;
 }
  
}


转载于  http://www.oschina.net/code/snippet_12_9060
0 0