Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * CC 150 1.2 Reverse A string
- * Created By Scarlett
- * Time: 12/19/2014 Fri 7:43 AM
- * 题目要求用C/C++,我们都是用java的,就简单理解成reverse a string吧
- * 注意题目中function return的是void, 所以reverse后的string要赋给原来的string
- * 用于测试时,不妨在method最后添一句system.out.println(s)
- *
- */
- public class Reverse {
- /*
- * 思路1:StringBuffer本身就有reverse method
- */
- public void reverse1(String s) {
- if (s==null) return;
- StringBuffer sb = new StringBuffer(s);
- sb.reverse();
- s = sb.toString();
- }
- /*
- * 这是最直观的reverse,但感觉不太好。
- * swap了len/2次,每次生成四个新string..感觉开销太大
- */
- public void reverse(String s) {
- if (s==null) return;
- int len = s.length();
- for (int i=0; i<len/2; i++) {
- char temp = s.charAt(i);
- char reverse = s.charAt(len-i-1);
- s =s.substring(0, i)+reverse+s.substring(i+1, len-i-1)+temp+s.substring(len-i);
- }
- System.out.println(s);
- }
- /*
- * 思路3:转成charArray,再swap
- * 交换了len/2次
- */
- public void reverse3(String s) {
- if (s==null) return;
- char[] cArray = s.toCharArray();
- int len = cArray.length;
- for (int i=0; i<len/2; i++) {
- //Swap c[i] and c[len-i-1]
- char temp = cArray[i];
- cArray[i]= cArray[len-i-1];
- cArray[len-i-1] = temp;
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Reverse s= new Reverse();
- s.reverse("Yes, we can.");
- s.reverse("good.");
- s.reverse("great!");
- s.reverse("");
- s.reverse(null);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement