Reverse Words in a String

来源:互联网 发布:法兰克编程教学 编辑:程序博客网 时间:2024/05/20 23:29

Given an input string, reverse the string word by word.

For example,
Given s = "the sky is blue",
return "blue is sky the".

Update (2015-02-12):
For C programmers: Try to solve it in-place in O(1) space.

click to show clarification.


思路:1 空值检验,去掉两端的空格

   2 以若干个(1个以上)空格为分隔符,将字符串转化为数组;

  3 遍历数组的一半,交换i与len-i-1

4.StringBuffer将数组连接起来,记得加上空格


 public String reverseWords(String s) {                if(s==null||"".equals(s.trim())) return s==null?s:s.trim();        s=s.trim();        String[] str=s.split("[\\s]+");        int len=str.length;                for(int i=0;i<len/2;i++){            String s1=str[i];            str[i]=str[len-i-1];            str[len-i-1]=s1;        }        // char[] c=s.toCharArray();        // int len=c.length;                // for(int i=0;i<len/2;i++){                    //     char c1=c[i];        //     c[i]=c[len-i-1];        //     c[len-i-1]=c1;        // }        StringBuffer sb=new StringBuffer();        for(int i=0;i<str.length;i++)        sb.append(str[i]+" ");                return sb.toString().trim();    }


0 0
原创粉丝点击