问题:把一个句子中的单词进行反转。例如,”how are you”,反转后变成"you are how";
思路:只需要进行两次字符反转的操作就行,第一次对整个字符串的字符进行反转,结果为:uoy era woh,可以发现每个单词是反的,然后分别对每个单词进行反转即可。
package zifuchuan; /** * Created by Administrator on 2017/10/1. */ public class FanZhuan { public void swap(char[] arr,int front,int end){ while(front<end){ char temp=arr[end]; arr[end]=arr[front]; arr[front]=temp; front++; end--; } } public String swapWords(String s){ char[] arr=s.toCharArray(); //对整个字符串进行反转 swap(arr,0,arr.length-1); int begin=0; //对每个单词进行反转 for(int i=0;i<arr.length;i++){ if(arr[i]==' '){ swap(arr,begin,i-1); begin=i+1; } } swap(arr,begin,arr.length-1); return new String(arr); } public static void main(String[] args){ String str="how are you"; System.out.println(new FanZhuan().swapWords(str)); } }