📜  如何在Java中填充字符串

📅  最后修改于: 2022-05-13 01:55:24.507000             🧑  作者: Mango

如何在Java中填充字符串

给定一个特定长度的字符串str ,任务是用给定字符ch填充这个字符串,以生成长度为L的字符串。

注意:必须以所有三种格式进行填充:左填充、右填充和中心填充。

例子:

有很多方法可以填充字符串:

  1. 使用 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-------
    
  2. 使用 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-------