首页 > 技术文章 > java 字符串反转

xiaoluosun 2015-01-27 16:11 原文

描述:给我一个字符串,例如I love java,输出: java love I

 

方法一

 1 public class StringReverse {
 2     
 3     public void swap(char[] arr, int begin, int end) {
 4         while(begin < end) {      
 5             char temp = arr[begin];
 6             arr[begin] = arr[end];
 7             arr[end] = temp;
 8             begin++;
 9             end--;
10         }
11     }
12     //I love java
13     public String swapWords(String str) {
14         char[] arr = str.toCharArray();
15         swap(arr, 0, arr.length - 1);    //第一次反转,结果为avaj evol I
16         int begin = 0;
17         for (int i = 1; i < arr.length; i++) {
18             if (arr[i] == ' ') {       //第二次和三次反转,结果分别为java evol I和java love I
19                 swap(arr, begin, i - 1);    
20                 begin = i + 1;
21             }
22         }
23 
24         return new String(arr);
25     }
26     
27     public static void main(String[] args) {
28         String str = "I love java";
29         System.out.println(new StringReverse().swapWords(str));
30     }
31 }

方法二:(利用jdk提供的方法)

 1 public class fanzhuan {
 2 
 3     public static void main(String[] args) {        
 4         String str = "I love java";       
 5         String[] sArr = str.split(" ");//I love java       
 6         List<String> list = new ArrayList<String>();       
 7         list = Arrays.asList(sArr);         //此时list为[I,love,java] 
 8         Collections.reverse(list);      //reverse方法直接反转list的每个元素,反转后为[java,love,I]
 9         
10         for(String word:list){
11             System.out.print(word+" ");
12         }
13     }
14 }

另外,如果描述改一下,输入一个字符串,例如“abcd”,输出"dcba",

 

当然了方法很多,这里我提供一个jdk自带的方法,比较简单

 1 package sundemo2;
 2 
 3 public class fanzhuan {
 4     public static void main(String[] args){
 5         String str = "my name is 周杰伦";
 6         System.out.println(reverse(str));
 7   
 8     }
 9     public static String reverse(String str){
10         return new StringBuilder(str).reverse().toString();
11     }  
12 }    

 

 1 package sundemo2;
 2 
 3 public class fanzhuan {
 4     public static void main(String[] args){
 5         String str = "my name is 周杰伦";
 6 
 7         for(int i = str.length() - 1; i >= 0; i--){
 8             System.out.print(str.charAt(i));
 9         }
10     }
11 }

 

推荐阅读