В этой короткой статье мы рассмотрим различные методы заполнения строки в Java. Мы создадим методы, которые дополняются значениями по умолчанию (пустыми пробелами), и методы, которые позволяют нам дополнять строку настраиваемым символом. Класс String в Java не имеет готового метода заполнения, поэтому мы будем создавать разные методы, а также использовать разные библиотеки для заполнения строки в Java.

Заполнение значением по умолчанию. Мы создадим перегруженный метод для заполнения символом по умолчанию или пользовательским символом. Первый метод заполнения будет содержать начальный текст и желаемую длину, в то время как настраиваемый символ заполнения второго метода заполнения будет содержать символ пробела.

Метод площадки по умолчанию:

public static String pad(String text, int len){
    return pad(text,len,' ');
}

Дополнение пользовательским символом.Этот метод содержит дополнительный параметр символа, который позволяет нам указать, каким символом мы хотим дополнить нашу строку.

public static String pad(String text, int len, char value){
    StringBuilder sb = new StringBuilder();
    if(text.length()<len){
        sb.append(text);
        for(int i=text.length();i<len;i++){
            sb.append(value);
        }
        return sb.toString();
    }
    return text;
}

Если вы заметили из приведенных выше фрагментов кода, мы добавляем новый набор символов слева от исходной строки. Давайте создадим аналогичный метод, который заполняет поля слева направо.

Заполнение слева. Следующий фрагмент кода похож на метод заполнения по умолчанию, но он заполняет значение по умолчанию слева.

public static String padLeft(String text, int len) {
    return padLeft(text,len,' ');
}

Дополнение слева пользовательским символом: дополняет пользовательский набор символов слева.

public static String padLeft(String text, int len, char value){
    StringBuilder sb = new StringBuilder();
    if(text.length()<len){
        for(int i=text.length();i<len;i++){
            sb.append(value);
        }
        sb.append(text);
        return sb.toString();
    }
    return text;
}

Заполнение с использованием строковых библиотек

Apache Commons Lang: в этой библиотеке есть несколько служебных классов Java. Одним из классов является класс StringUtils, который имеет множество методов для управления строками и их форматирования. Прежде чем вы сможете использовать библиотеку, вам нужно будет добавить зависимость в файл pom.xml.

<dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-lang3</artifactId>
 <version>3.8.1</version>
</dependency>

Согласно документации apache-commons, мы можем добавить влево, как в нашем примере выше, пробел или другой символ. Вот примеры методов, найденные в документации.

leftPad(String str, int size) для заполнения строки пробелами.

StringUtils.leftPad(“bat”, 3) = “bat”
StringUtils.leftPad(“bat”, 5) = “ bat”

leftPad(String str, int size, char padChar) для заполнения строки указанным символом.

StringUtils.leftPad("bat", 3, 'z')  = "bat"
StringUtils.leftPad("bat", 5, 'z')  = "zzbat"

leftPad(String str, int size, String padStr) для заполнения строки указанной строкой.

StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
 StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"

rrightPad(String str, int size) для заполнения справа строки пробелами.

StringUtils.rightPad(“bat”, 3) = “bat”
StringUtils.rightPad(“bat”, 5) = “bat  ”

rrightPad(String str, int size, char padChar) для заполнения строки указанным символом справа.

StringUtils.rightPad("bat", 3, 'z')  = "bat"
StringUtils.rightPad("bat", 5, 'z')  = "batzz"

rightPad(String str, int size, String padStr), чтобы дополнить строку справа указанной строкой.

StringUtils.rightPad("bat", 5, "yz")  = "batyz"
StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"

Я считаю, что в этой статье мы смогли охватить различные способы заполнения строки, самостоятельно реализуя различные методы и используя одну из самых популярных библиотек в Java для заполнения строки.