*/
public static String truncate(int maxChars, String s) {
if (maxChars < 0 || s == null || s.length() <= maxChars)
return s;
StringCharacterIterator stringIterator = new StringCharacterIterator(s, maxChars);
for (char c = stringIterator.current(); c != CharacterIterator.DONE; c = stringIterator.previous()) {
if (!Character.isLetterOrDigit(c)) {
return s.substring(0, stringIterator.getIndex());
}
}
// we didn't find a non-LetterOrDigit character prior to maxChars