[ https://issues.apache.org/jira/browse/LANG-1593?focusedWorklogId=634752&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-634752 ]
ASF GitHub Bot logged work on LANG-1593: ---------------------------------------- Author: ASF GitHub Bot Created on: 05/Aug/21 19:10 Start Date: 05/Aug/21 19:10 Worklog Time Spent: 10m Work Description: HubertWo commented on a change in pull request #784: URL: https://github.com/apache/commons-lang/pull/784#discussion_r683719682 ########## File path: src/main/java/org/apache/commons/lang3/StringUtils.java ########## @@ -4307,13 +4481,48 @@ public static String join(final int[] array, final char separator) { * @since 3.2 */ public static String join(final int[] array, final char delimiter, final int startIndex, final int endIndex) { + return join(array, String.valueOf(delimiter), startIndex, endIndex); + } + + /** + * <p> + * Joins the elements of the provided array into a single String containing the provided list of elements. + * </p> + * + * <p> + * No delimiter is added before or after the list. Null objects or empty strings within the array are represented + * by empty strings. + * </p> + * + * <pre> + * StringUtils.join(null, *) = null + * StringUtils.join([], *) = "" + * StringUtils.join([null], *) = "" + * StringUtils.join([1, 2, 3], ';') = "1;2;3" + * StringUtils.join([1, 2, 3], null) = "123" + * </pre> + * + * @param array + * the array of values to join together, may be null + * @param delimiter + * the separator String to use + * @param startIndex + * the first index to start joining from. It is an error to pass in a start index past the end of the + * array + * @param endIndex + * the index to stop joining from (exclusive). It is an error to pass in an end index past the end of + * the array + * @return the joined String, {@code null} if null array input + * @since 3.13.0 + */ + public static String join(final int[] array, final String delimiter, final int startIndex, final int endIndex) { if (array == null) { return null; } if (endIndex - startIndex <= 0) { return EMPTY; } - final StringJoiner joiner = newStringJoiner(delimiter); + final StringJoiner joiner = new StringJoiner(toStringOrEmpty(delimiter)); Review comment: Valid point. I brought it back. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@commons.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 634752) Time Spent: 3.5h (was: 3h 20m) > Common behaviour for StringUtils join APIs when called with char or String > delimiter > ------------------------------------------------------------------------------------ > > Key: LANG-1593 > URL: https://issues.apache.org/jira/browse/LANG-1593 > Project: Commons Lang > Issue Type: Improvement > Affects Versions: 3.4, 3.11 > Reporter: Kiruahxh > Priority: Minor > Time Spent: 3.5h > Remaining Estimate: 0h > > For now, join(int[], char) is working well. > However, the same join method called with a string delimiter behaves > differently : it returns a single memory address which is not the desired > behavior. > I think that, for coherence, calling StringUtils with a char or String > delimiter should return the exact same value. > Ex : > {code:java} > CLASSPATH="./commons-lang3-3.11.jar" jshell > | Welcome to JShell -- Version 11.0.8 > jshell> import org.apache.commons.lang3.StringUtils > jshell> int[] arr = {1, 2, 3, 4, 5, 6, 7}; > jshell> String result = StringUtils.join(arr, '-'); > result ==> "1-2-3-4-5-6-7" > jshell> String result = StringUtils.join(arr, "-"); > result ==> "[I@69663380-" > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005)