code: 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();
      }
docs: 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.
  
  @param str the string to be right justified; if null, an empty string is used
  @param width the desired width of the string; must be positive
  @param padWithChar the character to use for padding, if needed
  @return the right justified string