Ejemplo n.º 1
0
 /**
  * Truncate the supplied string to be no more than the specified length. This method returns an
  * empty string if the supplied object is null.
  *
  * @param obj the object from which the string is to be obtained using {@link Object#toString()}.
  * @param maxLength the maximum length of the string being returned
  * @param suffix the suffix that should be added to the content if the string must be truncated,
  *     or null if the default suffix of "..." should be used
  * @return the supplied string if no longer than the maximum length, or the supplied string
  *     truncated to be no longer than the maximum length (including the suffix)
  * @throws IllegalArgumentException if the maximum length is negative
  */
 public static String truncate(Object obj, int maxLength, String suffix) {
   CheckArg.isNonNegative(maxLength, "maxLength");
   if (obj == null || maxLength == 0) {
     return "";
   }
   String str = obj.toString();
   if (str.length() <= maxLength) return str;
   if (suffix == null) suffix = "...";
   int maxNumChars = maxLength - suffix.length();
   if (maxNumChars < 0) {
     // Then the max length is actually shorter than the suffix ...
     str = suffix.substring(0, maxLength);
   } else if (str.length() > maxNumChars) {
     str = str.substring(0, maxNumChars) + suffix;
   }
   return str;
 }