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