题目:
Given an input string, reverse the string word by word.
For example,
Given s = "
the sky is blue
",return "
blue is sky the
".Clarification:
- What constitutes a word?
- A sequence of non-space characters constitutes a word.
- Could the input string contain leading or trailing spaces?
- Yes. However, your reversed string should not contain leading or trailing spaces.
- How about multiple spaces between two words?
- Reduce them to a single space in the reversed string.
分析:1.利用String split() 提取出每个单词2.对于前缀“ ”和后缀“ ”进行处理
public class Solution { public String reverseWords(String s) { if(s == null || "".equals(s)){ return ""; } String[] array = s.split(" "); StringBuffer sb = new StringBuffer(); for(int i = array.length - 1; i >=0; i--){ if(!"".equals(array[i])){ sb.append(array[i]).append(" "); } } return sb.length() == 0 ? "" : sb.substring(0, sb.length() - 1).toString(); }//reverseWords }
PS:
“” 为empty String对象,分配一个空的内存空间;null 为空对象不分配内存空间;String[] array = “ ”.split(" ");array.length = 0;isEmpty(“ ”) is false;array.length;StringBuffer.length(); String.length();