Right pad a String with spaces (' ').
The String is padded to the size of size
.
rightPad(null, *) = null rightPad("", 3) = " " rightPad("bat", 3) = "bat" rightPad("bat", 5) = "bat " rightPad("bat", 1) = "bat" rightPad("bat", -1) = "bat"
Right pad a String with a specified character.
The String is padded to the size of size
.
rightPad(null, *, *) = null rightPad("", 3, 'z') = "zzz" rightPad("bat", 3, 'z') = "bat" rightPad("bat", 5, 'z') = "batzz" rightPad("bat", 1, 'z') = "bat" rightPad("bat", -1, 'z') = "bat"
Right pad a String with a specified String.
The String is padded to the size of size
.
rightPad(null, *, *) = null rightPad("", 3, "z") = "zzz" rightPad("bat", 3, "yz") = "bat" rightPad("bat", 5, "yz") = "batyz" rightPad("bat", 8, "yz") = "batyzyzy" rightPad("bat", 1, "yz") = "bat" rightPad("bat", -1, "yz") = "bat" rightPad("bat", 5, null) = "bat " rightPad("bat", 5, "") = "bat "
public class Main { public static void main(String[] argv) throws Exception { String str = "demo2s.com"; int size = 20; System.out.println(rightPad(str, size, '*')); }//from www . j a v a 2 s . c o m private static final int PAD_LIMIT = 8192; public static String rightPad(String str, int size) { return rightPad(str, size, ' '); } public static String rightPad(String str, int size, char padChar) { if (str == null) { return null; } int pads = size - str.length(); if (pads <= 0) { return str; // returns original String when possible } if (pads > PAD_LIMIT) { return rightPad(str, size, String.valueOf(padChar)); } return str.concat(padding(pads, padChar)); } public static String rightPad(String str, int size, String padStr) { if (str == null) { return null; } if (isEmpty(padStr)) { padStr = " "; } int padLen = padStr.length(); int strLen = str.length(); int pads = size - strLen; if (pads <= 0) { return str; // returns original String when possible } if (padLen == 1 && pads <= PAD_LIMIT) { return rightPad(str, size, padStr.charAt(0)); } if (pads == padLen) { return str.concat(padStr); } else if (pads < padLen) { return str.concat(padStr.substring(0, pads)); } else { char[] padding = new char[pads]; char[] padChars = padStr.toCharArray(); for (int i = 0; i < pads; i++) { padding[i] = padChars[i % padLen]; } return str.concat(new String(padding)); } } /** * <p> * Returns padding using the specified delimiter repeated to a given length. * </p> * * <pre> * padding(0, 'e') = "" * padding(3, 'e') = "eee" * padding(-2, 'e') = IndexOutOfBoundsException * </pre> * * <p> * Note: this method doesn't not support padding with * <a href="http://www.unicode.org/glossary/#supplementary_character">Unicode * Supplementary Characters</a> as they require a pair of <code>char</code>s to * be represented. If you are needing to support full I18N of your applications * consider using {@link #repeat(String, int)} instead. * </p> * * @param repeat * number of times to repeat delim * @param padChar * character to repeat * @return String with repeated character * @throws IndexOutOfBoundsException * if <code>repeat < 0</code> * @see #repeat(String, int) */ private static String padding(int repeat, char padChar) throws IndexOutOfBoundsException { if (repeat < 0) { throw new IndexOutOfBoundsException("Cannot pad a negative amount: " + repeat); } final char[] buf = new char[repeat]; for (int i = 0; i < buf.length; i++) { buf[i] = padChar; } return new String(buf); } public static boolean isEmpty(String str) { return str == null || str.length() == 0; } } /* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
//package com.demo2s; public class Main { public static void main(String[] argv) throws Exception { String s = "demo2s.com"; int len = 20; char pad_ch = 'a'; System.out.println(padRight(s, len, pad_ch)); }/* ww w . j a v a 2s . co m*/ /** * Returns a string consisting of "s", plus enough copies of "pad_ch" on the * right hand side to make the length of "s" equal to or greater than len (if * "s" is already longer than "len", then "s" is returned). */ public static String padRight(String s, int len, char pad_ch) { if (s.length() >= len) { return s; } else { StringBuilder sb = new StringBuilder(); int n = len - s.length(); sb.append(s); for (int i = 0; i < n; i++) { sb.append(pad_ch); } return sb.toString(); } } }