字符串反转

来源:互联网 发布:笔记本电脑咋下载软件 编辑:程序博客网 时间:2024/06/16 15:14

问题:把一个句子中的单词进行反转。例如,”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));    }}