描述:给我一个字符串,例如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 Listlist = new ArrayList (); 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 }