
org.unidal.helper.Joiners Maven / Gradle / Ivy
The newest version!
package org.unidal.helper;
import java.util.Arrays;
import java.util.Collection;
public class Joiners {
public static StringJoiner by(final char delimiter) {
return new StringJoiner() {
@Override
protected void appendDelimiter(StringBuilder sb) {
sb.append(delimiter);
}
};
}
public static StringJoiner by(final String delimiter) {
return new StringJoiner() {
@Override
protected void appendDelimiter(StringBuilder sb) {
sb.append(delimiter);
}
};
}
public static interface IBuilder {
public String asString(T item);
}
public static abstract class StringJoiner {
private boolean m_prefixDelimiter;
protected abstract void appendDelimiter(StringBuilder sb);
public String join(Collection list) {
return this. join(list, null);
}
public String join(Collection list, IBuilder builder) {
if (list == null) {
return null;
}
StringBuilder sb = new StringBuilder();
join(sb, list, builder);
return sb.toString();
}
public String join(String... array) {
return join(Arrays.asList(array), null);
}
public String join(IBuilder builder, T... array) {
return join(Arrays.asList(array), builder);
}
public void join(StringBuilder sb, Collection list, IBuilder builder) {
boolean first = true;
if (list != null) {
for (T item : list) {
if (first) {
first = false;
if (m_prefixDelimiter) {
appendDelimiter(sb);
}
} else {
appendDelimiter(sb);
}
if (builder == null) {
sb.append(item);
} else {
sb.append(builder.asString(item));
}
}
}
}
public StringJoiner prefixDelimiter() {
m_prefixDelimiter = true;
return this;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy