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;
     } 
    }
  • 相关阅读:
    Python实现决策树ID3算法
    ML——决策树模型
    Linux下用matplotlib画决策树
    RedHat7.2安装matplotlib——之Python.h:没有那个文件或目录
    没想到这么简单——滚雪球
    pyspark中使用累加器Accumulator统计指标
    pscp多线程传输文件
    [笔记] 使用numpy手写k-means算法
    [LeetCode in Python] 309 (M) best time to buy and sell stock with cooldown 最佳买卖股票时机含冷冻期
    [LeetCode in Python] 75 (M) sort colors 颜色分类
  • 原文地址:https://www.cnblogs.com/lanseyitai1224/p/6955609.html
Copyright © 2011-2022 走看看