首页 > 其他 > 详细

实现字符串反转

时间:2017-01-30 18:42:58      阅读:276      评论:0      收藏:0      [点我收藏+]

描述

把一个句子的单词进行反转,例如"how are you"改为"you are how"。

分析

两次反转,第一次对整个字符串反转为"uoy era woh",第二次再对每个单词进行反转。

代码

public class Test {
    //反转chars[start,end]的内容
    public void swap(char[] chars,int start,int end){
        char tmp;
        while(start<end){
            tmp=chars[start];
            chars[start]=chars[end];
            chars[end]=tmp;
            start++;
            end--;
        }
    }
    //
    public String swapString(String str){
        char[] chars=str.toCharArray();
        swap(chars,0,str.length()-1);
        int start=0;
        boolean flag=false;  //是否确定了反转单词的开头位置
        for(int i=0;i<chars.length;i++){
            if(chars[i]==‘ ‘) {
                if (flag) {
                    swap(chars, start, i-1);
                    flag=false;
                }
            }else{
                if(!flag){
                    flag=true;
                    start=i;
                }
            }
        }
        if(flag) swap(chars,start,str.length()-1);  //如果不加得到的结果就会是you are woh
        return new String(chars);

    }
    public static void main(String[] args) {
        System.out.println(new Test().swapString("how are you"));
    }
}

 

实现字符串反转

原文:http://www.cnblogs.com/zadomn0920/p/6358220.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!