问题:将一个句子中的单词进行反转,例如:“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));
}
}
版权声明:本文为博主原创文章,如需转载请注明出处并附上链接,谢谢。
原文地址:http://blog.csdn.net/yannanying/article/details/48035603