Here you can find the source of join(Collection> items, char separator)
public static String join(Collection<?> items, char separator)
//package com.java2s; /*/* ww w.j ava2 s.c om*/ * 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.Collection; public class Main { /** * Creates a backslash escaped string, joining all the items. * @see #escapeTextWithSeparator */ public static String join(Collection<?> items, char separator) { if (items == null) return ""; StringBuilder sb = new StringBuilder(items.size() << 3); boolean first = true; for (Object o : items) { String item = String.valueOf(o); if (first) { first = false; } else { sb.append(separator); } appendEscapedTextToBuilder(sb, item, separator); } return sb.toString(); } /** * writes chars from item to out, backslash escaping as needed based on separator -- * but does not append the seperator itself */ public static void appendEscapedTextToBuilder(StringBuilder out, String item, char separator) { for (int i = 0; i < item.length(); i++) { char ch = item.charAt(i); if (ch == '\\' || ch == separator) { out.append('\\'); } out.append(ch); } } }