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.
- Cocould the input string contain leading or trailing spaces?
Yes. However, your reversed string shocould not contain leading or trailing spaces.
- How about multiple spaces between two words?
Reduce them to a single space in the reversed string.
Https://oj.leetcode.com/problems/reverse-words-in-a-string/
Idea: Use the split method to split the data and then traverse it in reverse order to add it to the result.
/** * http://blog.csdn.net/perfect8886/article/details/20833685 * * */public class Solution { public String reverseWords(String s) { String[] a = s.split(" "); StringBuilder sb = new StringBuilder(); for (int i = a.length - 1; i >= 0; i--) { if (!a[i].equals("")) { sb.append(a[i]); sb.append(" "); } } if (sb.length() > 1) sb.deleteCharAt(sb.length() - 1); return sb.toString(); } public static void main(String[] args) { System.out.println(new Solution().reverseWords("the sky is blue")); }}