The Java implementation of flipping strings

  • 2020-04-01 02:58:40
  • OfStack

Here are some common and unusual ways to flip a string:


import java.util.Stack; 
public class StringReverse { 
public static String reverse1(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); 
   return reverse1(right) + reverse1(left); 
 } 
 public static String reverse2(String s) { 
   int length = s.length(); 
   String reverse = ""; 
   for (int i = 0; i < length; i++) 
    reverse = s.charAt(i) + reverse; 
   return reverse; 
  } 
  public static String reverse3(String s) { 
   char[] array = s.toCharArray(); 
   String reverse = ""; 
   for (int i = array.length - 1; i >= 0; i--) 
    reverse += array[i]; 
   return reverse; 
  } 
  public static String reverse4(String s) { 
   return new StringBuffer(s).reverse().toString(); 
  } 
  public static String reverse5(String orig) { 
   char[] s = orig.toCharArray(); 
   int n = s.length - 1; 
   int halfLength = n / 2; 
   for (int i = 0; i <= halfLength; i++) { 
    char temp = s[i]; 
    s[i] = s[n - i]; 
    s[n - i] = temp; 
   } 
   return new String(s); 
  } 
  public static String reverse6(String s) { 
   char[] str = s.toCharArray(); 
   int begin = 0; 
   int end = 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--; 
   } 
   return new String(str); 
  } 
  public static 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(); 
   return reversed; 
  } 
 } 


Related articles: