Hello Benedikt,
Have you had time to look at these elements and my feedback comments on
github ?

https://github.com/apache/commons-lang/pull/75

Loic Guibert
PGP : 0x65EB4F33


Le 01/05/2015 13:47, Benedikt Ritter a écrit :
> Hey Loic,
>
> thank you for this proposal. I'll have a look at it this Sunday!
>
> Benedikt
>
> 2015-04-30 10:08 GMT+02:00 Loic Guibert <lfdummy-apa...@yahoo.fr>:
>
>> Hello,
>> I've implemented 2 methods to split a String by fixed lengths :
>>   - public static String[] splitByLength(String str, int ... lengths)
>>   - public static String[] splitByLengthRepeatedly(String str, int ...
>> lengths)
>>
>> I'll open a JIRA ticket and an associated Pull Request to add those
>> methods in StringUtils.
>>
>>
>> There is detail :
>>
>>     /**
>>      * <p>Split a String into an array, using an array of fixed string
>> lengths.</p>
>>      *
>>      * <p>If not null String input, the returned array size is same as
>> the input lengths array.</p>
>>      *
>>      * <p>A null input String returns {@code null}.
>>      * A {@code null} or empty input lengths array returns an empty array.
>>      * A {@code 0} in the input lengths array results in en empty
>> string.</p>
>>      *
>>      * <p>Extra characters are ignored (ie String length greater than
>> sum of split lengths).
>>      * All empty substrings other than zero length requested, are
>> returned {@code null}.</p>
>>      *
>>      * <pre>
>>      * StringUtils.splitByLength(null, *)      = null
>>      * StringUtils.splitByLength("abc")        = []
>>      * StringUtils.splitByLength("abc", null)  = []
>>      * StringUtils.splitByLength("abc", [])    = []
>>      * StringUtils.splitByLength("", 2, 4, 1)  = [null, null, null]
>>      *
>>      * StringUtils.splitByLength("abcdefg", 2, 4, 1)     = ["ab",
>> "cdef", "g"]
>>      * StringUtils.splitByLength("abcdefghij", 2, 4, 1)  = ["ab",
>> "cdef", "g"]
>>      * StringUtils.splitByLength("abcdefg", 2, 4, 5)     = ["ab",
>> "cdef", "g"]
>>      * StringUtils.splitByLength("abcdef", 2, 4, 1)      = ["ab",
>> "cdef", null]
>>      *
>>      * StringUtils.splitByLength(" abcdef", 2, 4, 1)     = [" a",
>> "bcde", "f"]
>>      * StringUtils.splitByLength("abcdef ", 2, 4, 1)     = ["ab",
>> "cdef", " "]
>>      * StringUtils.splitByLength("abcdefg", 2, 4, 0, 1)  = ["ab",
>> "cdef", "", "g"]
>>      * StringUtils.splitByLength("abcdefg", -1)          = {@link
>> IllegalArgumentException}
>>      * </pre>
>>      *
>>      * @param str  the String to parse, may be null
>>      * @param lengths  the string lengths where to cut, may be null,
>> must not be negative
>>      * @return an array of splitted Strings, {@code null} if null String
>> input
>>      * @throws IllegalArgumentException
>>      *             if one of the lengths is negative
>>      */
>>     public static String[] splitByLength(String str, int ... lengths);
>>
>>     /**
>>      * <p>Split a String into an array, using an array of fixed string
>> lengths repeated as
>>      * many times as necessary to reach the String end.</p>
>>      *
>>      * <p>If not null String input, the returned array size is a
>> multiple of the input lengths array.</p>
>>      *
>>      * <p>A null input String returns {@code null}.
>>      * A {@code null} or empty input lengths array returns an empty array.
>>      * A {@code 0} in the input lengths array results in en empty
>> string.</p>
>>      *
>>      * <p>All empty substrings other than zero length requested and
>> following substrings,
>>      * are returned {@code null}.</p>
>>      *
>>      * <pre>
>>      * StringUtils.splitByLengthRepeated(null, *)      = null
>>      * StringUtils.splitByLengthRepeated("abc")        = []
>>      * StringUtils.splitByLengthRepeated("abc", null)  = []
>>      * StringUtils.splitByLengthRepeated("abc", [])    = []
>>      * StringUtils.splitByLengthRepeated("", 2, 4, 1)  = [null, null, null]
>>      *
>>      * StringUtils.splitByLengthRepeated("abcdefghij", 2, 3)     =
>> ["ab", "cde", "fg", "hij"]
>>      * StringUtils.splitByLengthRepeated("abcdefgh", 2, 3)       =
>> ["ab", "cde", "fg", "h"]
>>      * StringUtils.splitByLengthRepeated("abcdefg", 2, 3)        =
>> ["ab", "cde", "fg", null]
>>      *
>>      * StringUtils.splitByLengthRepeated(" abcdef", 2, 3)        = ["
>> a", "bcd", "ef", null]
>>      * StringUtils.splitByLengthRepeated("abcdef ", 2, 3)        =
>> ["ab", "cde", "f ", null]
>>      * StringUtils.splitByLengthRepeated("abcdef", 2, 3, 0, 1)   =
>> ["ab", "cde", "", "f"]
>>      * StringUtils.splitByLengthRepeated("abcdefg", 2, 3, 0, 1)  =
>> ["ab", "cde", "", "f",
>>      *                                                              "g",
>> null, null, null]
>>      * StringUtils.splitByLengthRepeated("abcdefgh", 2, 0, 1, 0) =
>> ["ab", "", "c", "",
>>      *
>> "de", "", "f", "",
>>      *
>> "gh", "", null, null]
>>      * StringUtils.splitByLengthRepeated("abcdefg", 2, 0, 1, 0) = ["ab",
>> "", "c", "",
>>      *
>> "de", "", "f", "",
>>      *                                                              "g",
>> null, null, null]
>>      * StringUtils.splitByLengthRepeated("abcdefg", -1)          =
>> {@link IllegalArgumentException}
>>      * StringUtils.splitByLengthRepeated("abcdefg", 0, 0)        =
>> {@link IllegalArgumentException}
>>      * </pre>
>>      *
>>      * @param str  the String to parse, may be null
>>      * @param lengths  the string lengths where to cut, may be null,
>> must not be negative
>>      * @return an array of splitted Strings, {@code null} if null String
>> input
>>      * @throws IllegalArgumentException
>>      *             if one of the lengths is negative or if lengths sum
>> is less than 1
>>      */
>>     public static String[] splitByLengthRepeatedly(String str, int ...
>> lengths);
>>
>> --
>> Loic Guibert
>> PGP : 0x65EB4F33
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>>
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to