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