Sponsoring getting 5015163 "(str) String merge/join that is the inverse of String.split()" into JDK 7

Joseph D. Darcy Joe.Darcy at Sun.COM
Fri Oct 23 17:37:26 UTC 2009


Yes, to my aesthetics the static call

    join(" ", "A", "call", "to");

is more sensible looking than

    " ".join("A", "call", "to");

Especially when a call like

    " ".join("Foo")

will not have " " in the returned String.  However, the platform would 
certainly be improved with any version of String.join compared to not 
having it.

-Joe

Joe Kearney wrote:
> Hi,
>
> From the peanut gallery, it seems to me that there is a genuine reason 
> to leave join as a static method (if we're not going after the 
> google-collections approach of a Joiner class 
> <http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/base/Joiner.html#on%28java.lang.String%29>) 
> in that split acts on one existing String, whereas join creates one 
> from others. On which object would you call the join method? The 
> separator? I know this was covered on this list before, but it still 
> strikes me as looking a little wierd.
>
>     ",".join("a", "b", "c")
>
> versus
>
>     Joiner.on(",").join("a", "b", "c")
>
>
> Thanks,
> Joe
>
> 2009/10/23 Mark Reinhold <mr at sun.com <mailto:mr at sun.com>>
>
>     > Date: Fri, 23 Oct 2009 10:10:35 +0200
>     > From: Rémi Forax <forax at univ-mlv.fr <mailto:forax at univ-mlv.fr>>
>
>     > Le 23/10/2009 03:53, Joe Darcy a écrit :
>     >> Following up on this, what is the exact revised proposal?
>     >>
>     >> In java.lang.String:
>     >>
>     >>    public static String join(String separator, Iterable<?>
>     objects);
>     >>    public static String join(String separator, Object[] objects);
>     >>    public static String join(String separator, Object first,
>     Object... rest);
>     >>
>     >> with analogous methods in StringBuffer and StringBuilder return
>     that type,
>     >> respectively, instead of String?
>     >
>     > I don't know. In my opinion, the main problem with join
>     specified using
>     > static methods is that split is not currently specified as a static
>     > method.  Because join is the dual of split, one could find the
>     usage of
>     > static methods weird.
>
>     I agree.  The join methods should be instance methods, not static
>     methods.
>
>     - Mark
>
>




More information about the core-libs-dev mailing list