public static <T> CharSequence join(final Iterator<T> it, final Func1<T, CharSequence> getter, final CharSequence delim) {
        final List<CharSequence> list = new ArrayList<>();
        boolean first = true;
        while (it.hasNext()) {
            final T item = it.next();
            final CharSequence cs = getter.call(item);
            if (cs != null) {
                if (!first) {
                    list.add(delim);
                }
                list.add(cs);
                first = false;
            }
        }

        return concat(list.toArray(new CharSequence[0]));
    }
convenience forward to {@link android.text.TextUtils#concat(java.lang.CharSequence...)}
main/src/main/java/cgeo/geocaching/utils/TextUtils.java