Mega Code Archive

 
Categories / Java / Data Type
 

Right justify string, ensuring that the string ends at the last character

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 {   /**    * Right justify the contents of the string, ensuring that the string ends at the last character. If the supplied string is    * longer than the desired width, the leading characters are removed so that the last character in the supplied string at the    * last position. If the supplied string is shorter than the desired width, the padding character is inserted one or more    * times such that the last character in the supplied string appears as the last character in the resulting string and that    * the length matches that specified.    *     * @param str the string to be right justified; if null, an empty string is used    * @param width the desired width of the string; must be positive    * @param padWithChar the character to use for padding, if needed    * @return the right justified string    */   public static String justifyRight( String str,                                      final int width,                                      char padWithChar ) {       assert width > 0;       // Trim the leading and trailing whitespace ...       str = str != null ? str.trim() : "";       final int length = str.length();       int addChars = width - length;       if (addChars < 0) {           // truncate the first characters, keep the last           return str.subSequence(length - width, length).toString();       }       // Prepend the whitespace ...       final StringBuilder sb = new StringBuilder();       while (addChars > 0) {           sb.append(padWithChar);           --addChars;       }       // Write the content ...       sb.append(str);       return sb.toString();   } }