On Mon, Oct 26, 2009 at 1:38 PM, Stephen Colebourne <span dir="ltr"><<a href="mailto:scolebourne@joda.org">scolebourne@joda.org</a>></span> wrote:<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Unfortunately, the null-handling behaviour of the static method is considered a feature to many</blockquote><div><br>That is unfortunate.  <evil grin>  Luckily any new JDK methods would not have to carry forward the null-tolerant approach. :-)<br>
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> By the way, one advantage of a Strings class is that it could contain a new implementation of split - one that doesn't use regex and isn't as complex/useless as the current one on String.<br>
</blockquote><div><br>Different splitting use cases want to specify the delimiter as any of a regex, a literal String, a literal char, or what we (Guava) call a "CharMatcher".  One way to support all these is to just support regex, as any of the rest of these can be coerced into a regex; this is what String.split() does.  Another way is to just outright support them all, as Guava's Splitter does:<br>
<br><a href="http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Splitter.html">http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Splitter.html</a><br><br>It also supports splitting into fixed-width segments, which -- well, I guess that can be coerced into a regex too, just a really frickin' weird one.  Splitter has a few other optional behaviors that users depend on.  The point of all this is that doing splitting well is going to take more than just a few static methods in a utility class.  By and large, we've found this to be the case with nearly everything (but not everything) we first thought of as a StringUtil method.<br>
<br><br></div></div>-- <br>Kevin Bourrillion @ Google<br>internal:  <a href="http://go/javalibraries">http://go/javalibraries</a><br>external: <a href="http://guava-libraries.googlecode.com">guava-libraries.googlecode.com</a><br>
<br>