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();
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;
}
}
最新文章
- 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等
- js阻止form表单重复提交
- Windows安装Scrapy遇坑解决办
- 函数重载二义性:error C2668: &#39;pow&#39; : ambiguous call to overloaded function
- 深入浅析mysql引擎
- Python3基础 filter与lambda表达式配合 筛选出1-100之间的奇数
- mina.net 梳理
- Oracle,Sql,procedure 感觉自己写的很棒的一个存储过程
- ajax 和jsonp 不是一码事
- Solve Error: node postinstall sh: node: command not found
- 好用的treeGrid
- window、view相关
- 1489 ACM 贪心
- 10 个非常实用的 SVG 动画操作JavaScript 库
- metamask源码学习导论
- AtCoder Beginner Contest 070|Elena|8.12|#471
- MariaDB&#160;MariaDB、MySQL存储过程、游标基础应用举例说明
- Codeforces Round #374 (Div. 2) C(DAG上的DP)
- 小游戏:HelloColor
- JavaScript:正则表达式 分组
热门文章
- SpringBoot项目启动后自动打开浏览器
- 在 Linux 如何优雅的统计程序运行时间?恕我直言,你运行的可能是假 time
- Django(15)外键和表关系
- 按照自己的思路研究Spring AOP源码【2】
- leecode之Implement strStr()
- cmake和make
- [DB] Spark Core (1)
- [BD] HBase
- [笔记] 《c++ primer》显示器程序 Chapter7
- Linux命令nohup实现命令后台运行并输出到或记录到日志文件