@@ -3930,11 +3930,13 @@ public static String join(final boolean[] array, final char delimiter, final int
39303930 if (endIndex - startIndex <= 0 ) {
39313931 return EMPTY ;
39323932 }
3933- final StringJoiner joiner = newStringJoiner ( delimiter );
3933+ final StringBuilder stringBuilder = new StringBuilder ( array . length * 5 + array . length - 1 );
39343934 for (int i = startIndex ; i < endIndex ; i ++) {
3935- joiner .add (String .valueOf (array [i ]));
3935+ stringBuilder
3936+ .append (array [i ])
3937+ .append (delimiter );
39363938 }
3937- return joiner . toString ( );
3939+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
39383940 }
39393941
39403942 /**
@@ -4007,11 +4009,13 @@ public static String join(final byte[] array, final char delimiter, final int st
40074009 if (endIndex - startIndex <= 0 ) {
40084010 return EMPTY ;
40094011 }
4010- final StringJoiner joiner = newStringJoiner ( delimiter );
4012+ final StringBuilder stringBuilder = new StringBuilder ( );
40114013 for (int i = startIndex ; i < endIndex ; i ++) {
4012- joiner .add (String .valueOf (array [i ]));
4014+ stringBuilder
4015+ .append (array [i ])
4016+ .append (delimiter );
40134017 }
4014- return joiner . toString ( );
4018+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
40154019 }
40164020
40174021 /**
@@ -4084,11 +4088,13 @@ public static String join(final char[] array, final char delimiter, final int st
40844088 if (endIndex - startIndex <= 0 ) {
40854089 return EMPTY ;
40864090 }
4087- final StringJoiner joiner = newStringJoiner ( delimiter );
4091+ final StringBuilder stringBuilder = new StringBuilder ( array . length * 2 - 1 );
40884092 for (int i = startIndex ; i < endIndex ; i ++) {
4089- joiner .add (String .valueOf (array [i ]));
4093+ stringBuilder
4094+ .append (array [i ])
4095+ .append (delimiter );
40904096 }
4091- return joiner . toString ( );
4097+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
40924098 }
40934099
40944100 /**
@@ -4161,11 +4167,13 @@ public static String join(final double[] array, final char delimiter, final int
41614167 if (endIndex - startIndex <= 0 ) {
41624168 return EMPTY ;
41634169 }
4164- final StringJoiner joiner = newStringJoiner ( delimiter );
4170+ final StringBuilder stringBuilder = new StringBuilder ( );
41654171 for (int i = startIndex ; i < endIndex ; i ++) {
4166- joiner .add (String .valueOf (array [i ]));
4172+ stringBuilder
4173+ .append (array [i ])
4174+ .append (delimiter );
41674175 }
4168- return joiner . toString ( );
4176+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
41694177 }
41704178
41714179 /**
@@ -4238,11 +4246,13 @@ public static String join(final float[] array, final char delimiter, final int s
42384246 if (endIndex - startIndex <= 0 ) {
42394247 return EMPTY ;
42404248 }
4241- final StringJoiner joiner = newStringJoiner ( delimiter );
4249+ final StringBuilder stringBuilder = new StringBuilder ( );
42424250 for (int i = startIndex ; i < endIndex ; i ++) {
4243- joiner .add (String .valueOf (array [i ]));
4251+ stringBuilder
4252+ .append (array [i ])
4253+ .append (delimiter );
42444254 }
4245- return joiner . toString ( );
4255+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
42464256 }
42474257
42484258 /**
@@ -4315,11 +4325,13 @@ public static String join(final int[] array, final char delimiter, final int sta
43154325 if (endIndex - startIndex <= 0 ) {
43164326 return EMPTY ;
43174327 }
4318- final StringJoiner joiner = newStringJoiner ( delimiter );
4328+ final StringBuilder stringBuilder = new StringBuilder ( );
43194329 for (int i = startIndex ; i < endIndex ; i ++) {
4320- joiner .add (String .valueOf (array [i ]));
4330+ stringBuilder
4331+ .append (array [i ])
4332+ .append (delimiter );
43214333 }
4322- return joiner . toString ( );
4334+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
43234335 }
43244336
43254337 /**
@@ -4601,11 +4613,13 @@ public static String join(final long[] array, final char delimiter, final int st
46014613 if (endIndex - startIndex <= 0 ) {
46024614 return EMPTY ;
46034615 }
4604- final StringJoiner joiner = newStringJoiner ( delimiter );
4616+ final StringBuilder stringBuilder = new StringBuilder ( );
46054617 for (int i = startIndex ; i < endIndex ; i ++) {
4606- joiner .add (String .valueOf (array [i ]));
4618+ stringBuilder
4619+ .append (array [i ])
4620+ .append (delimiter );
46074621 }
4608- return joiner . toString ( );
4622+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
46094623 }
46104624
46114625 /**
@@ -4664,17 +4678,7 @@ public static String join(final Object[] array, final char delimiter) {
46644678 * @since 2.0
46654679 */
46664680 public static String join (final Object [] array , final char delimiter , final int startIndex , final int endIndex ) {
4667- if (array == null ) {
4668- return null ;
4669- }
4670- if (endIndex - startIndex <= 0 ) {
4671- return EMPTY ;
4672- }
4673- final StringJoiner joiner = newStringJoiner (delimiter );
4674- for (int i = startIndex ; i < endIndex ; i ++) {
4675- joiner .add (toStringOrEmpty (array [i ]));
4676- }
4677- return joiner .toString ();
4681+ return join (array , String .valueOf (delimiter ), startIndex , endIndex );
46784682 }
46794683
46804684 /**
@@ -4826,11 +4830,13 @@ public static String join(final short[] array, final char delimiter, final int s
48264830 if (endIndex - startIndex <= 0 ) {
48274831 return EMPTY ;
48284832 }
4829- final StringJoiner joiner = newStringJoiner ( delimiter );
4833+ final StringBuilder stringBuilder = new StringBuilder ( );
48304834 for (int i = startIndex ; i < endIndex ; i ++) {
4831- joiner .add (String .valueOf (array [i ]));
4835+ stringBuilder
4836+ .append (array [i ])
4837+ .append (delimiter );
48324838 }
4833- return joiner . toString ( );
4839+ return stringBuilder . substring ( 0 , stringBuilder . length () - 1 );
48344840 }
48354841
48364842 /**
@@ -5522,10 +5528,6 @@ public static String mid(final String str, int pos, final int len) {
55225528 return str .substring (pos , pos + len );
55235529 }
55245530
5525- private static StringJoiner newStringJoiner (final char delimiter ) {
5526- return new StringJoiner (String .valueOf (delimiter ));
5527- }
5528-
55295531 /**
55305532 * <p>
55315533 * Similar to <a
0 commit comments