問題:將一個句子中的單詞進行反轉,例如:“how are you”,進行反轉後的結果爲“you are how”。
解題思路:將這個句子進行兩次反轉操作即可。
1)對整個字符串進行字符反轉,反轉結果“uoy era woh”;
2)接下來對每個單詞進行字符反轉,結果就是“you are how”。
源代碼:
/*
問題:將一個句子中的單詞進行反轉,例如:“how are you”,進行反轉後的結果爲“you are how”。
解題思路:將這個句子進行兩次反轉操作即可。
1)對整個字符串進行字符反轉,反轉結果“uoy era woh”;
2)接下來對每個單詞進行字符反轉,結果就是“you are how”。
*/
public class SwapString{
public void swap(char []cArr , int front , int end){
while(front<end){
char tmp = cArr[end];
cArr[end] = cArr[front];
cArr[front] = tmp;
front++;
end--;
}
}
public String swapWrods(String s){
char []cArr = s.toCharArray();
//對整個字符串進行字符反轉操作
swap(cArr,0,cArr.length - 1);
int begin = 0 ;
//對每個單詞進行字符反轉操作
for(int i = 1; i<cArr.length;i++){
if(cArr[i] ==' '){
swap(cArr,begin,i-1);
begin = i+1;
}
}
//處理最後一個單詞
swap(cArr, begin, cArr.length-1);
return new String(cArr);
}
public static void main(String []args){
String str = "how are you";
System.out.println(new SwapString().swapWrods(str));
}
}