首页 > 代码库 > java 字符串反转

java 字符串反转

描述:给我一个字符串,例如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 java13     public String swapWords(String str) {14         char[] arr = str.toCharArray();15         swap(arr, 0, arr.length - 1);    //第一次反转,结果为avaj evol I16         int begin = 0;17         for (int i = 1; i < arr.length; i++) {18             if (arr[i] == ‘ ‘) {       //第二次和三次反转,结果分别为java evol I和java love I19                 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 }

 

java 字符串反转