zoukankan      html  css  js  c++  java
  • 将字符串反转的 Java 方法

    Java中经常会用到将字符串进行反转的时候,程序员孔乙己总结了7种反转方法,如下:

    //方法1 递归方法

     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);
     }

    //方法2 通过 charAt(int index)返回char值进行字符串拼接

     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;
     }

    //方法3 把字符串转换成字符数组倒叙拼接然后返回值

     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;
     }

    //方法4 调用StringBuffer中的reverse方法

    public static String reverse4(String s) {
      return new StringBuffer(s).reverse().toString();
     }

    //方法5 把字符串转换成字符数组首位对调位置

     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);
     }

    //方法6

    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);
    }

    //方法7

    import java.util.Stack;
    public class StringReverse {    
     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;
     } 
    }
  • 相关阅读:
    2013工作回望
    在Skyline 控件上面显示Web信息窗体
    Extjs xtype 为lable 设置
    纪念第一篇博客
    前端技术学习经验分享(第二、三天---学习过程)
    前端技术学习经验分享(第一天---布置学习环境)
    JS开发HTML5游戏《悠悠考拉》(三)
    JS开发HTML5游戏《悠悠考拉》(二)
    JS开发HTML5游戏《悠悠考拉》(一)
    产品经理C端转B端,我后悔了
  • 原文地址:https://www.cnblogs.com/lanseyitai1224/p/6955609.html
Copyright © 2011-2022 走看看