You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Charles Honton (JIRA)" <ji...@apache.org> on 2015/03/26 05:03:53 UTC
[jira] [Commented] (LANG-823) StringUtils.split should handle empty
strings the same as other content
[ https://issues.apache.org/jira/browse/LANG-823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14381316#comment-14381316 ]
Charles Honton commented on LANG-823:
-------------------------------------
If StringUtils is just trying to make String well behaved for null inputs, then the following unit test should pass:
assertArrayEquals("".split(","), StringUtils.split("", ","));
Currently, StringUtils.split("", ",") returns a zero length array and "".split(",") returns a single element array containing the empty string.
> StringUtils.split should handle empty strings the same as other content
> -----------------------------------------------------------------------
>
> Key: LANG-823
> URL: https://issues.apache.org/jira/browse/LANG-823
> Project: Commons Lang
> Issue Type: Improvement
> Components: lang.*
> Affects Versions: 2.5
> Reporter: Mark Farnsworth
> Assignee: Benedikt Ritter
> Priority: Minor
> Fix For: Review Patch, Discussion, 3.x
>
> Attachments: LANG-823.patch, LANG-823.test.patch
>
>
> When a user issues a split with a delimiter and the string does not contain the delimiter the result is normally an array with one item that contains the content of the string.
> It seems strange that StringUtils does not behave consistently in the context of an empty string.
> For example,
> {code}
> package maf.test;
> import junit.framework.TestCase;
> import org.apache.commons.lang.StringUtils;
> public class StringUtilsTest extends TestCase {
> public void testStringUtils() {
> // The following two lines work correctly
> assertTrue(StringUtils.split("x",",")[0].equals("x"));
> assertTrue(StringUtils.split(" ",",")[0].equals(" "));
>
> // The following should also work but
> // in commons-lang-2.5.jar the test fails here
> assertTrue(StringUtils.split("",",")[0].equals(""));
> }
> }
> {code}
> There seems to be no logic behind making split work differently in the case of empty strings.
> For the next release, I would suggest a behavior change for StringUtils this will have side effects but would be more logically consistent.
> Users who depend on the old behavior could stick with 2.5 release and/or implement code in the caller to simulate the behavior.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)