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