Mega Code Archive

 
Categories / Java / Data Type
 

Joins the elements of Iterator into a single with char value as separator

/*  * Licensed to the Apache Software Foundation (ASF) under one or more  * contributor license agreements.  See the NOTICE file distributed with  * this work for additional information regarding copyright ownership.  * The ASF licenses this file to You under the Apache License, Version 2.0  * (the "License"); you may not use this file except in compliance with  * the License.  You may obtain a copy of the License at  *   *      http://www.apache.org/licenses/LICENSE-2.0  *   * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */ import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main {   /**    * <p>Joins the elements of the provided <code>Iterator</code> into    * a single String containing the provided elements.</p>    *    * <p>No delimiter is added before or after the list. Null objects or empty    * strings within the iteration are represented by empty strings.</p>    *    * <p>See the examples here: {@link #join(Object[],char)}. </p>    *    * @param iterator  the <code>Iterator</code> of values to join together, may be null    * @param separator  the separator character to use    * @return the joined String, <code>null</code> if null iterator input    * @since 2.0    */   public static String join(Iterator iterator, char separator) {       // handle null, zero and one elements before building a buffer       if (iterator == null) {           return null;       }       if (!iterator.hasNext()) {           return "";       }       Object first = iterator.next();       if (!iterator.hasNext()) {           return toString(first);       }       // two or more elements       StringBuffer buf = new StringBuffer(256); // Java default is 16, probably too small       if (first != null) {           buf.append(first);       }       while (iterator.hasNext()) {           buf.append(separator);           Object obj = iterator.next();           if (obj != null) {               buf.append(obj);           }       }       return buf.toString();   }   // ToString   //-----------------------------------------------------------------------   /**    * <p>Gets the <code>toString</code> of an <code>Object</code> returning    * an empty string ("") if <code>null</code> input.</p>    *     * <pre>    * ObjectUtils.toString(null)         = ""    * ObjectUtils.toString("")           = ""    * ObjectUtils.toString("bat")        = "bat"    * ObjectUtils.toString(Boolean.TRUE) = "true"    * </pre>    *     * @see StringUtils#defaultString(String)    * @see String#valueOf(Object)    * @param obj  the Object to <code>toString</code>, may be null    * @return the passed in Object's toString, or nullStr if <code>null</code> input    * @since 2.0    */   public static String toString(Object obj) {       return obj == null ? "" : obj.toString();   } }