Right, left justify the string : String Pad « Data Type « Java






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();
  }  
}

   
    
    
    
    
  








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.Set string length, padding with character if the shorter, or truncating if longer
11.Returns the quoted version of the string using the quotechar argument.
12.Return a string padded with the given string for the given count.
13.Left pad the given text parameter
14.Right pad the given text parameter
15.Left padding
16.Right padding
17.Pads the string with 0x and zeros on the left until it has the requested size.
18.Pads the string with zeros on the left until it has the requested size.