/方法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();

intn = s.length - 1;

int halfLength = n / 2;

for(int i = 0; i <= halfLength; i++) {

chartemp = 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;

}

}

最新文章

  1. 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等
  2. js阻止form表单重复提交
  3. Windows安装Scrapy遇坑解决办
  4. 函数重载二义性:error C2668: &#39;pow&#39; : ambiguous call to overloaded function
  5. 深入浅析mysql引擎
  6. Python3基础 filter与lambda表达式配合 筛选出1-100之间的奇数
  7. mina.net 梳理
  8. Oracle,Sql,procedure 感觉自己写的很棒的一个存储过程
  9. ajax 和jsonp 不是一码事
  10. Solve Error: node postinstall sh: node: command not found
  11. 好用的treeGrid
  12. window、view相关
  13. 1489 ACM 贪心
  14. 10 个非常实用的 SVG 动画操作JavaScript 库
  15. metamask源码学习导论
  16. AtCoder Beginner Contest 070|Elena|8.12|#471
  17. MariaDB&#160;MariaDB、MySQL存储过程、游标基础应用举例说明
  18. Codeforces Round #374 (Div. 2) C(DAG上的DP)
  19. 小游戏:HelloColor
  20. JavaScript:正则表达式 分组

热门文章

  1. SpringBoot项目启动后自动打开浏览器
  2. 在 Linux 如何优雅的统计程序运行时间?恕我直言,你运行的可能是假 time
  3. Django(15)外键和表关系
  4. 按照自己的思路研究Spring AOP源码【2】
  5. leecode之Implement strStr()
  6. cmake和make
  7. [DB] Spark Core (1)
  8. [BD] HBase
  9. [笔记] 《c++ primer》显示器程序 Chapter7
  10. Linux命令nohup实现命令后台运行并输出到或记录到日志文件