Trim string from left or right
//package com.studiofortress.sf.util; /** * A fully static class, this contains helper methods for working with strings. * * @author Joseph Lenton */ public final class StringUtil { private static final char DEFAULT_TRIM_WHITESPACE = ' '; /** * No Constructor. */ private StringUtil() { } /** * Concatonates all the strings given together into one long string. * @param strings An array of strings, cannot be null and cannot contain null. * @return A string made by concatonating all the elements of strings together. */ public static String stringConcat(String ... strings) { /* Add up the total length of the strings, this is a small optimization * for when were working with lots of long strings. */ int length = 0; for (int i = 0; i < strings.length; i++) { length += strings[i].length(); } // append all strings together final StringBuilder concatString = new StringBuilder(length); for (int i = 0; i < strings.length; i++) { concatString.append(strings[i]); } return concatString.toString(); } /** * Trims spaces from the left side of the string and returns the result. * @param string The string to trim. * @return A string with all spaces removed from the left side. */ public static String trimLeft(String string) { return trimLeft( string, DEFAULT_TRIM_WHITESPACE ); } /** * Trims the character given from the given string and returns the result. * @param string The string to trim, cannot be null. * @param trimChar The character to trim from the left of the given string. * @return A string with the given character trimmed from the string given. */ public static String trimLeft(final String string, final char trimChar) { final int stringLength = string.length(); int i; for (i = 0; i < stringLength && string.charAt(i) == trimChar; i++) { /* increment i until it is at the location of the first char that * does not match the trimChar given. */ } if (i == 0) { return string; } else { return string.substring(i); } } /** * Trims spaces from the right side of the string given and returns the * result. * @param string The string to trim, cannot be null. * @return A string with all whitespace trimmed from the right side of it. */ public static String trimRight(final String string) { return trimRight(string, DEFAULT_TRIM_WHITESPACE); } /** * Trims the character given from the right side of the string given. The * result of this trimming is then returned. * @param string The string to trim, cannot be null. * @param trimChar The character to trim from the right side of the given string. * @return The result of trimming the character given from the right side of the given string. */ public static String trimRight(final String string, final char trimChar) { final int lastChar = string.length() - 1; int i; for (i = lastChar; i >= 0 && string.charAt(i) == trimChar; i--) { /* Decrement i until it is equal to the first char that does not * match the trimChar given. */ } if (i < lastChar) { // the +1 is so we include the char at i return string.substring(0, i+1); } else { return string; } } /** * Trims the character given from both left and right of the string given. * For trimming whitespace you can simply use the String classes trim method. * @param string The string to trim characters from, cannot be null. * @param trimChar The character to trim from either side of the given string. * @return A string with the given characters trimmed from either side. */ public static String trim(final String string, final char trimChar) { return trimLeft(trimRight(string, trimChar), trimChar); } }