in reply to Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell)

public static String reverseWords( String src ) { List<String> pcs = Arrays.asList( src.split("\\s+") ); Collections.reverse( pcs ); StringBuffer result = new StringBuffer(); for( String pc : pcs ) result.append(" ").append(pc); return result.substring(1); }
  • Comment on Re: Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell) (a Java 1.5 version)
  • Download Code

Replies are listed 'Best First'.
Re^2: Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell) (a Java 1.5 version)
by IulianU (Novice) on Dec 14, 2006 at 22:39 UTC
    Of course the above is broken :) It appends a trailing empty space. There are two ways to fix it: 1) return result.toString().trim(); instead of return result.substring(1); 2) filter out zero-length pieces in the for loop with something like if( pc.length() == 0 )