Truncate the supplied string to be no more than the specified length. : String format « Data Type « Java






Truncate the supplied string to be no more than the specified length.

        
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * JBoss DNA (http://www.jboss.org/dna)
 * See the COPYRIGHT.txt file distributed with this work for information
 * regarding copyright ownership.  Some portions may be licensed
 * to Red Hat, Inc. under one or more contributor license agreements.
 * See the AUTHORS.txt file in the distribution for a full listing of 
 * individual contributors.
 *
 * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
 * is licensed to you under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * JBoss DNA is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */

/**
 * Utilities for string processing and manipulation.
 */
public class StringUtil {



  /**
   * 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
   * @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 ) {
      return truncate(obj, maxLength, null);
  }

  /**
   * 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 ) {
      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;
  }
}

   
    
    
    
    
    
    
    
  








Related examples in the same category

1.Fmt - format text (like Berkeley UNIX fmt)
2.Demonstrate some usage patterns and format-code examples of the FormatterDemonstrate some usage patterns and format-code examples of the Formatter
3.String.format(): right pad a string
4.String.format(): left pad a string
5.Format a String (JDK1.5)
6.Pass value array to String.format()
7.Format Calendar with String.format()
8.Abbreviates a String using ellipses in both sides.
9.Abbreviates a String using ellipses.
10.Abbreviate string
11.Word Wrap
12.Centers a String in a larger String of size size using the space character (' ').
13.Centers a String in a larger String of size size. Uses a supplied String as the value to pad the String with.
14.Centers a String in a larger String of size size. Uses a supplied character as the value to pad the String with.
15.Capitalize the first character of the given string
16.Capitalize the first letter but leave the rest as they are.
17.Capitalizes a String changing the first letter to title case as Character.toTitleCase(char). No other letters are changed.
18.Format strings into table
19.Center the contents of the string.
20.Replace, remove, format strings
21.Adds spaces in suitable locations of the input string
22.Blank string: empty or white space
23.Capital and uncapital strings
24.Capitalizes the first character of the given string
25.Utilities for String formatting, manipulation, and queries
26.Fast lower case conversion
27.Format a percentage for presentation to the user
28.Left justify the contents of the string, ensuring that the supplied string begins at the first character and that the resulting string is of the desired length.
29.Transforms words to singular, plural, humanized (human readable), underscore, camel case, or ordinal form
30.Escapes all necessary characters in the String so that it can be used in SQL
31.Escapes all necessary characters in the String so that it can be used in an XML doc
32.Adds zeros to the beginning of a value so that the total length matches the given precision, otherwise trims the right digits.
33.Right justify string, ensuring that the string ends at the last character
34.Makes the first letter caps and the rest lowercase.
35.Quote a string so that it can be used as an identifier or a string literal in SQL statements.
36.Remove the hyphens from the begining of str and return the new String.
37.Swaps the case of a String changing upper and title case to lower case, and lower case to upper case.
38.Uncapitalizes a String changing the first letter to title case as per Character.toLowerCase(char). No other letters are changed.
39.Capitlize each word in a string (journal titles, etc)
40.Uncapitalize String
41.Utility inserts a space before every caps in a string
42.convert String array To Comma Delimited
43.Constructs a method name from element's bean name for a given prefix
44.break Lines
45.Limit the string to a certain number of characters, adding "..." if it was truncated
46.Capicalizes the first letter of a string
47.Add delimiters to a string.
48.Get Truncated String
49.Convert to $(Dollars) string
50.Convert string to multiline
51.Deletes all whitespace from a String.
52.Trim string from left or right
53.implode and explode string
54.To Upper Case First Char
55.Left trim and right trim
56.capitalize and uncapitalize