Mega Code Archive

 
Categories / Java / Data Type
 

Right, left justify the string

/*  * Copyright (c) 2008-2011 Simon Ritchie.  * All rights reserved.   *   * This program is free software: you can redistribute it and/or modify   * it under the terms of the GNU Lesser General Public License as published   * by the Free Software Foundation, either version 3 of the License, or   * (at your option) any later version.  *   * This program 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 program.  If not, see http://www.gnu.org/licenses/>.  */ //package org.rimudb.editor.util; public class StringUtil {   public static final String SC_LOWER = "lower";   public static final String SC_UPPER = "upper";   public static final String SC_SENTENCE = "sentence";   public static final String SC_TITLE = "title";   public static final String SC_PROPER = "proper";      /**    * Private Constructor - this is a static methods only class.    */   private StringUtil() {     super();   }   /**    * <P>Right justify a string using blanks to pad the left part of the    * string until it reaches <code>maxLength</code>.  If the length of    * the string is greater than <code>maxLength</code> characters, return    * only the first, left <code>maxLength</code> characters.</P>    *    */        public static String rightJustify( String s, int maxLength ) {      return rightJustify( s, maxLength, ' ' );   }                   /**    * <P>Right justify a string using the specified padding character to pad    * the left part of the string until it reaches <code>maxLength</code>.    * If the length of the string is greater than <code>maxLength</code> characters,    * return only the first, left <code>maxLength</code> characters.</P>    *    * @return  The right-justified string.    */   public static String rightJustify( String s, int maxLength, char fill ) {      if (s == null || maxLength == 0 ) {        return s;      }      // If the string has more than "maxLength" characters,      // return only the first "maxLength" characters of the string.      if ( s.trim().length() > maxLength ) {        return s.substring( 0, maxLength ).trim();      }      StringBuffer sb = new StringBuffer( s.trim() );      // Insert as many padding characters as needed to reach "maxLength".     while ( sb.length() < maxLength ) {        sb.insert( 0, fill );      }      return sb.toString();    }      /**     * Left justify a string, and fill to a given length with the blanks.    * If the length of the string is greater than "maxLength" characters, return only     * the first, left "maxLength" characters.     */        public static String leftJustify(String s, int maxLength) {      return leftJustify(s, maxLength, ' ');   }                   /**     * Left justify a string, and fill to a given length with the character <code>fill</code>.    * If the length of the string is greater than "maxLength" characters, return only     * the first, left "maxLength" characters.     */        public static String leftJustify(String s, int maxLength, char fill) {     if (s == null || maxLength == 0 ) {        return s;      }     // If the string has more than "maxLength" characters,      // return only the first "maxLength" characters of the string.      if ( s.trim().length() > maxLength ) {        return s.substring( 0, maxLength ).trim();      }     StringBuffer sb = new StringBuffer(s.trim());      // Append as many blanks as needed to reach "maxLength".      while ( sb.length() < maxLength ) {       sb.append(fill);      }     return sb.toString();    }   /**    * Replace the first occurrence of <code>oldSubstring</code> in    * <code>text</code>, if there is one, with <code>newSubstring</code>.    *    * @param text - Replace a substring of this String    * @param oldSubstring - The substring of <code>text</code> to be replaced    * @param newSubstring - The string to put into <code>text</code>    * @return A new String which is a copy of <code>text</code> with the first    *         occurrence of <code>oldSubstring</code> in <code>text</code>, if    *         there is one, with <code>newSubstring</code>.    *         Returns null if <code>text</code> is null.    *         Returns <code>text</code> if either substring is null or    *         <code>oldSubstring</code> is empty    */   public static String replace(String text, String oldSubstring, String newSubstring) {     String result = text;        if ((text != null) && (text.length() > 0)       && (oldSubstring != null) && (oldSubstring.length() > 0)       && (newSubstring != null)) {         int pos = text.indexOf(oldSubstring);         if (pos > -1) {           result = text.substring(0, pos) + newSubstring + text.substring(pos + oldSubstring.length());         }       }        return result;   }      /**    * Replaces all occurrences of <code>oldSubstring</code> in    * <code>text</code>, if there are any, with <code>newSubstring</code>.    *    * @param text - Replace substrings of this String    * @param oldSubstring - The substring of <code>text</code> to be replaced    * @param newSubstring - The string to put into <code>text</code>    * @return A new String which is a copy of <code>text</code> with all    *         occurrences of <code>oldSubstring</code> in <code>string</code>,    *         if there are any, with <code>newSubstring</code>.    *         Returns null if <code>text</code> is null.    *         Returns <code>text</code> if either substring is null or    *         <code>oldSubstring</code> is empty    */   public static String replaceAll(String text, String oldSubstring, String newSubstring) {     String result = text;          if ( (result != null)       && (result.length() > 0)       && (result.indexOf(oldSubstring)>-1)       && (oldSubstring.length() > 0)       && (!oldSubstring.equals(newSubstring))) {                         while (result.indexOf(oldSubstring) > -1) {         result = replace(result, oldSubstring, newSubstring);       }     }          return result;   }   /**    * Convert the String s to proper case.    *     * @param s String    * @return String    */   public static String toProperCase(String s) {     StringBuilder sb = new StringBuilder();     for (String f: s.split(" ")) {       if (sb.length()>0) {         sb.append(" ");       }       sb.append(f.substring(0,1).toUpperCase()).append(f.substring(1,f.length()).toLowerCase());     }     return sb.toString();   }   }