" one two three four " #### "four three two one" #### private static string reverseWords(string str) { string[] words = Array.FindAll(str.Split( new char[] {' ','\t'}), delegate(string s) { return !String.IsNullOrEmpty(s); }); int i = words.Length - 1; if (i < 0) return String.Empty; StringBuilder sb = new StringBuilder(words[i]); while (--i >= 0) sb.Append(' ').Append(words[i]); return sb.ToString(); } #### Array.Reverse(words); return String.Join(" ", words); #### sub reverseWords { join ' ', reverse split(' ', shift) } #### sub reverseWords(Str $s) returns Str { $s.words.reverse.join(' ') } #### def reverseWords(s) s.split.reverse.join(' ') end #### reverseWords = unwords . reverse . words