Here you can find the source of join(Iterator> iterator, String separator)
Parameter | Description |
---|---|
iterator | the Iterator of values to join together, may be null |
separator | the separator character to use, null treated as "" |
public static String join(Iterator<?> iterator, String separator)
//package com.java2s; /**/* www.java 2s . c o m*/ * <p> * Simple utility class for String operations useful across the framework. * <p/> * <p> * Some methods in this class were copied from the Spring Framework so we didn't * have to re-invent the wheel, and in these cases, we have retained all * license, copyright and author information. * * @since 0.9 */ import java.util.*; public class Main { /** * Constant representing the empty string, equal to "" */ public static final String EMPTY_STRING = ""; /** * Joins the elements of the provided {@code Iterator} into a single String * containing the provided elements.</p> * <p/> * No delimiter is added before or after the list. A {@code null} separator * is the same as an empty String ("").</p> * <p/> * Copied from Commons Lang, version 3 (r1138702).</p> * * @param iterator the {@code Iterator} of values to join together, may be * null * @param separator the separator character to use, null treated as "" * @return the joined String, {@code null} if null iterator input * @since 1.2 */ public static String join(Iterator<?> iterator, String separator) { final String empty = ""; // handle null, zero and one elements before building a buffer if (iterator == null) { return null; } if (!iterator.hasNext()) { return empty; } Object first = iterator.next(); if (!iterator.hasNext()) { return first == null ? empty : first.toString(); } // two or more elements StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small if (first != null) { buf.append(first); } while (iterator.hasNext()) { if (separator != null) { buf.append(separator); } Object obj = iterator.next(); if (obj != null) { buf.append(obj); } } return buf.toString(); } /** * Returns the specified array as a comma-delimited (',') string. * * @param array the array whose contents will be converted to a string. * @return the array's contents as a comma-delimited (',') string. * @since 1.0 */ public static String toString(Object[] array) { return toDelimitedString(array, ","); } /** * Returns the array's contents as a string, with each element delimited by * the specified {@code delimiter} argument. Useful for {@code toString()} * implementations and log messages. * * @param array the array whose contents will be converted to a string * @param delimiter the delimiter to use between each element * @return a single string, delimited by the specified {@code delimiter}. * @since 1.0 */ public static String toDelimitedString(Object[] array, String delimiter) { if (array == null || array.length == 0) { return EMPTY_STRING; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < array.length; i++) { if (i > 0) { sb.append(delimiter); } sb.append(array[i]); } return sb.toString(); } /** * Returns the collection's contents as a string, with each element * delimited by the specified {@code delimiter} argument. Useful for * {@code toString()} implementations and log messages. * * @param c the collection whose contents will be converted to a string * @param delimiter the delimiter to use between each element * @return a single string, delimited by the specified {@code delimiter}. * @since 1.2 */ public static String toDelimitedString(Collection c, String delimiter) { if (c == null || c.isEmpty()) { return EMPTY_STRING; } return join(c.iterator(), delimiter); } }