Автор оригинала: mkyong.
В этой статье показано, как использовать JDK1.5 String.format()
и Общий язык Apache
для заполнения строки слева или справа на Java.
1. В этой статье показано, как использовать JDK1.5 ||String.format()|| и || Общий язык Apache || для заполнения строки слева или справа на Java.
По умолчанию/|String.format() заполняет дополнительные пробелы
\u0020 . Обычно мы используем
replace() для заполнения другими символами, но это заменит пробелы между заданной строкой.
package com.mkyong; public class JavaPadString1 { public static void main(String[] args) { String input = "I Love Java!"; // I Love Java! String result1 = String.format("%s", input); // pad 20 chars String result2 = String.format("|%20s|", input); // | I Love Java!| String result3 = String.format("|%-20s|", input); // |I Love Java! | // ********I*Love*Java! String result4 = String.format("%20s", input).replace(" ", "*"); // I*Love*Java!******** String result5 = String.format("%-20s", input).replace(" ", "*"); System.out.println(result1); System.out.println(result2); System.out.println(result3); System.out.println(result4); System.out.println(result5); } }
Выход
I Love Java! | I Love Java!| |I Love Java! | ********I*Love*Java! I*Love*Java!********
2. Общий язык апачей
Чтобы решить проблему String.format
, описанную выше, мы можем использовать Общий язык Apache
слева, справа или по центру строки.
org.apache.commons commons-lang3 3.9
package com.mkyong; import org.apache.commons.lang3.StringUtils; public class JavaPadString2 { public static void main(String[] args) { String input = "I Love Java!"; String result4 = StringUtils.leftPad(input, 20, "*"); String result5 = StringUtils.rightPad(input, 20, "*"); String result6 = StringUtils.center(input, 20, "*"); System.out.println(result4); System.out.println(result5); System.out.println(result6); } }
Выход
********I Love Java! I Love Java!******** ****I Love Java!****
Если вы не хотите включать библиотеку для заполнения строки, загляните в общий язык Apache СтрингУтилы.Левая панель
, и скопируйте исходный код 🙂
public static String leftPad(final String str, final int size, String padStr) { if (str == null) { return null; } if (isEmpty(padStr)) { padStr = SPACE; } final int padLen = padStr.length(); final int strLen = str.length(); final int pads = size - strLen; if (pads <= 0) { return str; // returns original String when possible } if (padLen == 1 && pads <= PAD_LIMIT) { return leftPad(str, size, padStr.charAt(0)); } if (pads == padLen) { return padStr.concat(str); } else if (pads < padLen) { return padStr.substring(0, pads).concat(str); } else { final char[] padding = new char[pads]; final char[] padChars = padStr.toCharArray(); for (int i = 0; i < pads; i++) { padding[i] = padChars[i % padLen]; } return new String(padding).concat(str); } }
P.S Выше приведен исходный код P.S Выше приведен исходный код , от Общий язык апачей .
Рекомендации
- Примеры Строкового Формата Java
- Примеры Строкового Формата Java Явадок
- Общий язык
- Форматировщик JavaDoc
Оригинал: “https://mkyong.com/java/how-to-pad-a-string-in-java/”