Set string length, padding with character if the shorter, or truncating if longer : String Pad « Data Type « Java






Set string length, padding with character if the shorter, or truncating if longer

      
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 {

  /**
   * Set the length of the string, padding with the supplied character if the
   * supplied string is shorter than desired, or truncating the string if it is
   * longer than desired. Unlike {@link #justifyLeft(String, int, char)}, this
   * method does not remove leading and trailing whitespace.
   * 
   * @param original
   *          the string for which the length is to be set; may not be null
   * @param length
   *          the desired length; must be positive
   * @param padChar
   *          the character to use for padding, if the supplied string is not
   *          long enough
   * @return the string of the desired length
   * @see #justifyLeft(String, int, char)
   */
  public static String setLength(String original, int length, char padChar) {
    return justifyLeft(original, length, padChar, false);
  }

  protected static String justifyLeft(String str, final int width, char padWithChar,
      boolean trimWhitespace) {
    // Trim the leading and trailing whitespace ...
    str = str != null ? (trimWhitespace ? str.trim() : str) : "";

    int addChars = width - str.length();
    if (addChars < 0) {
      // truncate
      return str.subSequence(0, width).toString();
    }
    // Write the content ...
    final StringBuilder sb = new StringBuilder();
    sb.append(str);

    // Append the whitespace ...
    while (addChars > 0) {
      sb.append(padWithChar);
      --addChars;
    }

    return sb.toString();
  }

}

   
    
    
    
    
    
  








Related examples in the same category

1.Left pad a String with a specified String.
2.Left pad a String with a specified character.
3.Left pad a String with spaces (' ').
4.Right pad a String with a specified String.
5.Right pad a String with a specified character.
6.Right pad a String with spaces (' ').
7.Padding and triming strings
8.Pad string
9.Padded String
10.Returns the quoted version of the string using the quotechar argument.
11.Return a string padded with the given string for the given count.
12.Left pad the given text parameter
13.Right pad the given text parameter
14.Left padding
15.Right padding
16.Pads the string with 0x and zeros on the left until it has the requested size.
17.Pads the string with zeros on the left until it has the requested size.
18.Right, left justify the string