package edu.ualberta.med.biobank.common.util;
import java.util.Collection;
import java.util.Iterator;
public class StringUtil {
/**
* Returns a concatenation of the {@link String} form of each element in the
* given {@code Collection}, delimited by the given delimiter. Rolled our
* own because don't want to include a whole jar for this method.
*
* @param <T>
* @param s
* @param delimiter
* @return
*/
public static <T> String join(Collection<T> s, String delimiter) {
StringBuilder builder = new StringBuilder();
Iterator<T> iter = s.iterator();
while (iter.hasNext()) {
builder.append(iter.next());
if (!iter.hasNext()) {
break;
}
builder.append(delimiter);
}
return builder.toString();
}
/**
* @param unit to repeat
* @param n number of times to repeat
* @param delimiter to separate unit-s
* @return a string of {@code unit} repeated {@code n} times, with a
* {@code delimiter} in between each {@code unit}.
*/
public static String repeat(String unit, int n, String delimiter) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= n; i++) {
sb.append(unit);
if (i < n) {
sb.append(delimiter);
}
}
return sb.toString();
}
public static String truncate(String string, int n, String suffix) {
if (string.length() - suffix.length() > n) {
return string.substring(0, n) + suffix;
}
return string;
}
}