如何在Java中填充字符串
给定一个特定长度的字符串str ,任务是用给定字符ch填充这个字符串,以生成长度为L的字符串。
注意:必须以所有三种格式进行填充:左填充、右填充和中心填充。
例子:
Input: str = “Geeksforgeeks”, ch =’-‘, L = 20
Output:
Left Padding: ————GeeksForGeeks
Center Padding: ——GeeksForGeeks——
Right Padding: GeeksForGeeks————
Input: str = “GfG”, ch =’#’, L = 5
Output:
Left Padding: ##GfG
Center Padding: #GfG#
Right Padding: GfG##
有很多方法可以填充字符串:
- 使用 String format() 方法:此方法用于返回使用给定语言环境、指定格式字符串和参数的格式化字符串。
注意:此方法只能用于左右填充。
方法:
- 获取完成填充的字符串。
- 使用 String.format() 方法在字符串的左右两侧填充空格,然后使用 String.replace() 方法将这些空格替换为给定的字符。
- 对于左填充,使用 String.format() 方法的语法是:
String.format("%[L]s", str).replace(' ', ch);
- 对于右填充,使用 String.format() 方法的语法是:
String.format("%-[L]s", str).replace(' ', ch);
- 如果长度 'L'小于字符串的初始长度,则原样返回相同的字符串。
下面是上述方法的实现:
例子:
// Java implementation to pad a String import java.lang.*; import java.io.*; public class GFG { // Function to perform left padding public static String leftPadding(String input, char ch, int L) { String result = String // First left pad the string // with space up to length L .format("%" + L + "s", input) // Then replace all the spaces // with the given character ch .replace(' ', ch); // Return the resultant string return result; } // Function to perform right padding public static String rightPadding(String input, char ch, int L) { String result = String // First right pad the string // with space up to length L .format("%" + (-L) + "s", input) // Then replace all the spaces // with the given character ch .replace(' ', ch); // Return the resultant string return result; } // Driver code public static void main(String[] args) { String str = "GeeksForGeeks"; char ch = '-'; int L = 20; System.out.println( leftPadding(str, ch, L)); System.out.println( rightPadding(str, ch, L)); } }
输出:-------GeeksForGeeks GeeksForGeeks-------
- 使用 Apache Common Lang: Apache Commons Lang 包提供了StringUtils类,其中包含leftPad()、center() 和 rightPad()方法,可以分别轻松地向左填充、中心填充和右填充一个字符串。
注意:必须在运行代码之前安装此模块。因此,此代码不会在在线编译器上运行。
方法:
- 获取完成填充的字符串。
- 对于左填充,使用StringUtils.leftPad()方法的语法是:
StringUtils.leftPad(str, L, ch);
- 对于中心填充,使用StringUtils.center()方法的语法是:
StringUtils.center(str, L, ch);
- 对于右填充,使用StringUtils.rightPad()方法的语法是:
StringUtils.rightPad(str, L, ch);
- 如果长度 'L'小于字符串的初始长度,则原样返回相同的字符串。
下面是上述方法的实现:
例子:
// Java implementation to pad a String import java.lang.*; import java.io.*; public class GFG { // Function to perform left padding public static String leftPadding(String input, char ch, int L) { // Left pad the string String result = StringUtils.leftPad(str, L, ch); // Return the resultant string return result; } // Function to perform center padding public static String centerPadding(String input, char ch, int L) { // Center pad the string String result = StringUtils.center(str, L, ch); // Return the resultant string return result; } // Function to perform right padding public static String rightPadding(String input, char ch, int L) { // Right pad the string String result = StringUtils.rightPad(str, L, ch); // Return the resultant string return result; } // Driver code public static void main(String[] args) { String str = "GeeksForGeeks"; char ch = '-'; int L = 20; System.out.println( leftPadding(str, ch, L)); System.out.println( centerPadding(str, ch, L)); System.out.println( rightPadding(str, ch, L)); } }
输出:-------GeeksForGeeks ---GeeksForGeeks---- GeeksForGeeks-------