package org.tessell.util; import java.util.Iterator; import java.util.List; public class StringUtils { public static String toString(Object o) { return o == null ? "" : o.toString(); } public static String defaultString(final String a, final String defaultString) { return a != null ? a : defaultString; } public static String blankString(final String a, final String defaultString) { return a != null && a.trim().length() > 0 ? a : defaultString; } public static String emptyString(final String a, final String defaultString) { return a != null && a.length() > 0 ? a : defaultString; } public static String join(final List<?> things, final String on) { final StringBuilder sb = new StringBuilder(); for (final Iterator<?> i = things.iterator(); i.hasNext();) { sb.append(i.next()); if (i.hasNext()) { sb.append(on); } } return sb.toString(); } public static String join(final Object[] things, final String on) { final StringBuilder sb = new StringBuilder(); for (int i = 0, len = things.length; i < len; i++) { sb.append(things[i]); if (i < len - 1) { sb.append(on); } } return sb.toString(); } public static String substringAfterLast(final String str, final String separator) { if (str == null) { return null; } final int pos = str.lastIndexOf(separator); if (pos == -1 || pos == (str.length() - separator.length())) { return ""; } return str.substring(pos + separator.length()); } public static String capitalize(final String str) { if (str == null || str.length() == 0) { return str; } return str.substring(0, 1).toUpperCase() + str.substring(1); } public static String uncapitalize(final String str) { if (str == null || str.length() == 0) { return str; } return str.substring(0, 1).toLowerCase() + str.substring(1); } @SuppressWarnings("unchecked") public static <P> P sanitizeIfString(P value) { if (value instanceof String) { value = (P) ((String) value).trim(); if ("".equals(value)) { value = null; } } return value; } }