java 字符串的反转
2013-08-28 21:17
393 查看
虽然StringBuffer类已经提供了字符串反转的方法,但是在面试过程中可能会遇到相关的问题。下面主要采取四种方式:
1.才用交换每个位置的值来反转:
2.递归
3.追个追加字符串的方式
4.交换数组的方式(看了jdk的源码实现好像就是这种方式)
1.才用交换每个位置的值来反转:
public String reverse(String str) { if (str == null || str.length() <= 1) { return str; } StringBuffer sb = new StringBuffer(str); for (int i = 0; i < sb.length() / 2; i++) { int swap = sb.length() - 1 - i;//交换位 char swapChar = sb.charAt(swap);//保存需要交换的值 sb.setCharAt(swap, sb.charAt(i)); sb.setCharAt(i, swapChar); } return sb.toString(); }
2.递归
public String reverse2(String str) { if (str == null || str.length() <= 1) { return str; } return reverse(str.substring(1)) + str.charAt(0); }
3.追个追加字符串的方式
public static String reverse3(String str){ StringBuffer sb = new StringBuffer(str); StringBuffer result = new StringBuffer(); for(int i = sb.length()-1;i>=0;i--){ result.append(sb.charAt(i)); } return result.toString(); }
4.交换数组的方式(看了jdk的源码实现好像就是这种方式)
public static String reverse4(String str){ char [] temp = str.toCharArray(); int swap = 0; char c; for(int i = 0;i<temp.length/2;i++){//记得i的范围一定要为length的1/2,要不然就交换了两次 swap = temp.length-1-i; c = temp[swap]; temp[swap] = temp[i]; temp[i] = c; } return String.valueOf(temp); }
相关文章推荐
- Java - 如何实现字符串的反转?
- java中的字符串反转
- Java——模拟trim方法,与字符串反转
- Java字符串反转算法实现
- Java_字符串反转操作学习
- 字符串反转 字符串中的单词逆序输出 java
- 使用Java自带的方法反转字符串
- java网络编程客户端输入字符串,服务器端将其反转后输出给客户端,客户端显示出来
- Java反转字符串和相关字符编码的问题解决
- java实现字符串反转(二)
- java 将一个字符串里连续两个及以上数字反转
- Java实现字符串中的连续数字的反转
- java字符串反转
- Java实现的简单字符串反转操作示例
- Java反转字符串的方式?
- java如何实现字符串的反转及替换
- java--让一个字符串反转
- 初识Java,初出茅庐:字符串实现反转的几种方法
- java实现字符串按词反转
- java 实现字符串反转