【问题标题】:How can I pad a String in Java?如何在 Java 中填充字符串?
【发布时间】:2010-09-28 03:45:59
【问题描述】:

有没有一些简单的方法可以在 Java 中填充字符串?

似乎应该在一些类似 StringUtil 的 API 中,但我找不到任何这样做的东西。

【问题讨论】:

    标签: java string padding


    【解决方案1】:

    Apache StringUtils 有几种方法:leftPadrightPadcenterrepeat

    但请注意——正如其他人在this answer 中提到和演示的那样——JDK 中的String.format()Formatter 类是更好的选择。在公共代码上使用它们。

    【讨论】:

    • java.util.Formatter (和 String.format() )这样做。如果 JDK 版本能胜任(确实如此),则始终更喜欢 JDK 而不是外部库。
    • 出于几个原因,我现在更喜欢 Guava 而不是 Apache Commons; this answer shows how to do it in Guava.
    • @glen3b:对于单个实用程序,例如这些字符串填充助手,使用哪个库确实没有区别。也就是说,与各种 Apache Commons 项目(Commons Lang、Commons Collections、Commons IO 等)中的对应物相比,Guava 总体上是一个更现代、更干净、文档更好的库。它也是由非常聪明的人(Kevin Bourrillion 等人)构建的,其中许多人是active at SO。几年前,我自己最终用 Guava 替换了各种 Apache Commons 库,并且没有后悔。
    • @glen3b:一些不错的further reading at this question
    • StringUtils/Strings 当焊盘的大小是运行时变量时,IMO 仍然是更好的选择。
    【解决方案2】:

    除了 Apache Commons,另请参阅 String.format,它应该能够处理简单的填充(例如,使用空格)。

    【讨论】:

      【解决方案3】:

      看看org.apache.commons.lang.StringUtils#rightPad(String str, int size, char padChar)

      但是算法非常简单(填充到大小字符):

      public String pad(String str, int size, char padChar)
      {
        StringBuilder padded = new StringBuilder(str);
        while (padded.length() < size)
        {
          padded.append(padChar);
        }
        return padded.toString();
      }
      

      【讨论】:

      • 请注意,从 Java 1.5 开始,值得使用 StringBuilder 而不是 StringBuffer。
      【解决方案4】:

      您可以通过保留填充数据来减少每次调用的开销,而不是每次都重新构建它:

      public class RightPadder {
      
          private int length;
          private String padding;
      
          public RightPadder(int length, String pad) {
              this.length = length;
              StringBuilder sb = new StringBuilder(pad);
              while (sb.length() < length) {
                  sb.append(sb);
              }
              padding = sb.toString();
         }
      
          public String pad(String s) {
              return (s.length() < length ? s + padding : s).substring(0, length);
          }
      
      }
      

      作为替代方法,您可以将结果长度作为pad(...) 方法的参数。在这种情况下,请在该方法中而不是在构造函数中调整隐藏的填充。

      (提示:为了额外的功劳,让它成为线程安全的!;-)

      【讨论】:

      • 这是线程安全的,除了不安全的发布(当然,让你的字段最终确定)。我认为可以通过在 + 之前做一个子字符串来提高性能,应该用 concat 替换(很奇怪)。
      【解决方案5】:

      java.util.Formatter 将进行左右填充。不需要奇怪的第三方依赖项(您是否想为如此琐碎的事情添加它们)。

      [我省略了细节并将这篇文章设为“社区维基”,因为它不是我需要的。]

      【讨论】:

      • 我不同意。在任何较大的 Java 项目中,您通常会执行大量字符串操作,因此提高可读性和避免错误非常值得使用 Apache Commons Lang。大家都知道 someString.subString(someString.indexOf(startCharacter), someString.lastIndexOf(endCharacter)) 之类的代码,使用 StringUtils 可以轻松避免。
      【解决方案6】:

      从 Java 1.5 开始,String.format() 可用于向左/向右填充给定字符串。

      public static String padRight(String s, int n) {
           return String.format("%-" + n + "s", s);  
      }
      
      public static String padLeft(String s, int n) {
          return String.format("%" + n + "s", s);  
      }
      
      ...
      
      public static void main(String args[]) throws Exception {
       System.out.println(padRight("Howto", 20) + "*");
       System.out.println(padLeft("Howto", 20) + "*");
      }
      

      输出是:

      Howto               *
                     Howto*
      

      【讨论】:

      • 如果您需要使用其他字符(不是空格)进行 lpad 怎么办?仍然可以使用 String.format 吗?我无法让它工作......
      • AFAIK String.format() 无法做到这一点,但编写代码并不难,请参阅rgagnon.com/javadetails/java-0448.html(第二个示例)
      • @Nullw0rm,如果您指的是 rgagnon.com,请注意 RealHowTo 也是 rgagnon.com 的作者,所以他会认为自己...
      • 至少在我的 JVM 上,“#”不起作用,“-”很好。 (只需删除#)。这可能与格式化程序文档一致,我不知道;它说“'#' '\u0023' 要求输出使用另一种形式。形式的定义由转换指定。”
      • 感谢您的精彩回答。不过我有一个疑问,1$ 是干什么用的? @leo 做了一个非常相似的答案,不使用1$,它显然具有相同的效果。有区别吗?
      【解决方案7】:

      您可以使用内置的 StringBuilder append() 和 insert() 方法, 用于填充可变字符串长度:

      AbstractStringBuilder append(CharSequence s, int start, int end) ;
      

      例如:

      private static final String  MAX_STRING = "                    "; //20 spaces
      
          Set<StringBuilder> set= new HashSet<StringBuilder>();
          set.add(new StringBuilder("12345678"));
          set.add(new StringBuilder("123456789"));
          set.add(new StringBuilder("1234567811"));
          set.add(new StringBuilder("12345678123"));
          set.add(new StringBuilder("1234567812234"));
          set.add(new StringBuilder("1234567812222"));
          set.add(new StringBuilder("12345678122334"));
      
          for(StringBuilder padMe: set)
              padMe.append(MAX_STRING, padMe.length(), MAX_STRING.length());
      

      【讨论】:

        【解决方案8】:

        我知道这个帖子有点老了,最初的问题是为了一个简单的解决方案,但如果它应该真的很快,你应该使用一个 char 数组。

        public static String pad(String str, int size, char padChar)
        {
            if (str.length() < size)
            {
                char[] temp = new char[size];
                int i = 0;
        
                while (i < str.length())
                {
                    temp[i] = str.charAt(i);
                    i++;
                }
        
                while (i < size)
                {
                    temp[i] = padChar;
                    i++;
                }
        
                str = new String(temp);
            }
        
            return str;
        }
        

        格式化程序解决方案不是最佳的。只是构建格式字符串会创建 2 个新字符串。

        apache 的解决方案可以通过用目标大小初始化 sb 来改进,所以在下面替换

        StringBuffer padded = new StringBuffer(str); 
        

        StringBuffer padded = new StringBuffer(pad); 
        padded.append(value);
        

        会阻止某人的内部缓冲区增长。

        【讨论】:

        • 如果StringBuffer 不能被多个线程同时访问(在这种情况下是真的),你应该使用StringBuilder(在JDK1.5+ 中)来避免开销同步。
        【解决方案9】:

        我花了一点时间才弄明白。 真正的关键是阅读 Formatter 文档。

        // Get your data from wherever.
        final byte[] data = getData();
        // Get the digest engine.
        final MessageDigest md5= MessageDigest.getInstance("MD5");
        // Send your data through it.
        md5.update(data);
        // Parse the data as a positive BigInteger.
        final BigInteger digest = new BigInteger(1,md5.digest());
        // Pad the digest with blanks, 32 wide.
        String hex = String.format(
            // See: http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html
            // Format: %[argument_index$][flags][width]conversion
            // Conversion: 'x', 'X'  integral    The result is formatted as a hexadecimal integer
            "%1$32x",
            digest
        );
        // Replace the blank padding with 0s.
        hex = hex.replace(" ","0");
        System.out.println(hex);
        

        【讨论】:

        • 结局为什么这么复杂?您可以刚刚完成 String hex = String.format("%032x", digest);并得到完全相同的结果,只是没有不必要的 replace() 并且必须使用 $ 来访问特定变量(毕竟只有一个。)
        • @ArtOfWarfare 公平点。最初有人在另一个问题中要求填充十六进制值,我看到我有一个指向格式化程序文档的链接。完整性很复杂。
        【解决方案10】:

        这行得通:

        "".format("%1$-" + 9 + "s", "XXX").replaceAll(" ", "0")
        

        它将用空格填充您的 String XXX 最多 9 个字符。之后,所有的空白都将被替换为 0。您可以将空白和 0 更改为您想要的任何内容...

        【讨论】:

        • 您应该以String.format(…) 的形式调用static 方法,而不是滥用空字符串。在源代码中保存四个字符肯定不值得失去可读性。
        【解决方案11】:

        填充到 10 个字符:

        String.format("%10s", "foo").replace(' ', '*');
        String.format("%-10s", "bar").replace(' ', '*');
        String.format("%10s", "longer than 10 chars").replace(' ', '*');
        

        输出:

          *******foo
          bar*******
          longer*than*10*chars
        

        密码字符显示“*”:

        String password = "secret123";
        String padded = String.format("%"+password.length()+"s", "").replace(' ', '*');
        

        输出与密码字符串长度相同:

          secret123
          *********
        

        【讨论】:

        • 只要我们都记得不要传入带空格的字符串... :D
        • 我支持@aboveyou00——对于带有空格的字符串来说,这是一个可怕的解决方案,包括 leo 提供的示例。在左侧或右侧填充字符串的解决方案不应更改输出中出现的输入字符串,除非输入字符串的原始填充使其超过指定的填充长度。
        • 确认空间问题。 .replace(' ', '*') 旨在显示填充的效果。密码隐藏表达式无论如何都没有这个问题...有关使用本机 Java 功能自定义左右填充字符串的更好答案,请参阅我的其他答案。
        • 如果字符串只包含单个空格,并且您想用不同的字符填充,您可以使用正则表达式替换并向后/向前看:String.format("%30s", "pad left").replaceAll("(?&lt;=( |^)) ", "*")String.format("%-30s", "pad right").replaceAll(" (?=( |$))", "*")
        【解决方案12】:
        public static String padLeft(String in, int size, char padChar) {                
            if (in.length() <= size) {
                char[] temp = new char[size];
                /* Llenado Array con el padChar*/
                for(int i =0;i<size;i++){
                    temp[i]= padChar;
                }
                int posIniTemp = size-in.length();
                for(int i=0;i<in.length();i++){
                    temp[posIniTemp]=in.charAt(i);
                    posIniTemp++;
                }            
                return new String(temp);
            }
            return "";
        }
        

        【讨论】:

          【解决方案13】:

          这是另一种向右填充的方法:

          // put the number of spaces, or any character you like, in your paddedString
          
          String paddedString = "--------------------";
          
          String myStringToBePadded = "I like donuts";
          
          myStringToBePadded = myStringToBePadded + paddedString.substring(myStringToBePadded.length());
          
          //result:
          myStringToBePadded = "I like donuts-------";
          

          【讨论】:

            【解决方案14】:

            Guava,这很简单:

            Strings.padStart("string", 10, ' ');
            Strings.padEnd("string", 10, ' ');
            

            【讨论】:

            • 为标准 JDK 中已经包含的填充添加 2.7MB 代码依赖项?说真的。
            • 查看Guava源代码中这些方法的实现,这种愚蠢的短路使它们几乎无法使用:if (string.length() &gt;= minLength) { return string; } :(
            【解决方案15】:

            一个简单的解决方案是:

            package nl;
            public class Padder {
                public static void main(String[] args) {
                    String s = "123" ;
                    System.out.println("#"+("     " + s).substring(s.length())+"#");
                }
            }
            

            【讨论】:

              【解决方案16】:
              public static String LPad(String str, Integer length, char car) {
                return (str + String.format("%" + length + "s", "").replace(" ", String.valueOf(car))).substring(0, length);
              }
              
              public static String RPad(String str, Integer length, char car) {
                return (String.format("%" + length + "s", "").replace(" ", String.valueOf(car)) + str).substring(str.length(), length + str.length());
              }
              
              LPad("Hi", 10, 'R') //gives "RRRRRRRRHi"
              RPad("Hi", 10, 'R') //gives "HiRRRRRRRR"
              RPad("Hi", 10, ' ') //gives "Hi        "
              RPad("Hi", 1, ' ')  //gives "H"
              //etc...
              

              【讨论】:

              • 注意:你倒了函数名;如果你运行它,你会看到。
              • 加上如果原始str包含空格那么这不起作用
              • @StevenShaw 如果我没记错的话,替换的目标不是原来的str,所以这是正确的。
              • 按照惯例,函数名不应使用大写字母。
              • (length - str.length())0 时,返回字符串是否缺少条件?当%0s 是格式字符串时,格式化程序会抛出FormatFlagsConversionMismatchException
              【解决方案17】:

              这是怎么回事

              字符串为“hello”,所需的填充为 15,左侧填充为“0”

              String ax="Hello";
              while(ax.length() < 15) ax="0"+ax;
              

              【讨论】:

              • 这个最多生成 15 个新字符串。
              • @claj 是的,但是this.
              【解决方案18】:

              简单的事情:

              值应该是一个字符串。如果不是,将其转换为字符串。喜欢"" + 123Integer.toString(123)

              // let's assume value holds the String we want to pad
              String value = "123";
              

              子字符串从值长度 char 索引开始直到填充的结束长度:

              String padded="00000000".substring(value.length()) + value;
              
              // now padded is "00000123"
              

              更精确

              右击:

              String padded = value + ("ABCDEFGH".substring(value.length())); 
              
              // now padded is "123DEFGH"
              

              垫左:

              String padString = "ABCDEFGH";
              String padded = (padString.substring(0, padString.length() - value.length())) + value;
              
              // now padded is "ABCDE123"
              

              【讨论】:

                【解决方案19】:

                很多人都有一些非常有趣的技术,但我喜欢保持简单,所以我选择了这个:

                public static String padRight(String s, int n, char padding){
                    StringBuilder builder = new StringBuilder(s.length() + n);
                    builder.append(s);
                    for(int i = 0; i < n; i++){
                        builder.append(padding);
                    }
                    return builder.toString();
                }
                
                public static String padLeft(String s, int n,  char padding) {
                    StringBuilder builder = new StringBuilder(s.length() + n);
                    for(int i = 0; i < n; i++){
                        builder.append(Character.toString(padding));
                    }
                    return builder.append(s).toString();
                }
                
                public static String pad(String s, int n, char padding){
                    StringBuilder pad = new StringBuilder(s.length() + n * 2);
                    StringBuilder value = new StringBuilder(n);
                    for(int i = 0; i < n; i++){
                        pad.append(padding);
                    }
                    return value.append(pad).append(s).append(pad).toString();
                }
                

                【讨论】:

                • 这个效率很低,应该使用StringBuilder
                • 既然你已经知道长度,你应该告诉 StringBuilder 在你实例化它时分配那么多空间。
                • @Ariel 你提到这一点很有趣,因为我今天只是在和其他人谈论这个,哈哈。
                【解决方案20】:

                让我回答某些情况,您需要在连接到另一个字符串之前提供左/右填充(或前缀/后缀字符串或空格)并且您不想测试长度或任何 if 条件。

                与所选答案相同,我更喜欢 Apache Commons 的 StringUtils,但使用这种方式:

                StringUtils.defaultString(StringUtils.leftPad(myString, 1))
                

                解释:

                • myString:我输入的字符串,可以为null
                • StringUtils.leftPad(myString, 1): 如果string为null,这个语句也会返回null
                • 然后使用defaultString给空字符串以防止连接null

                【讨论】:

                  【解决方案21】:

                  没有任何 API 的简单解决方案如下:

                  public String pad(String num, int len){
                      if(len-num.length() <=0) return num;
                      StringBuffer sb = new StringBuffer();
                      for(i=0; i<(len-num.length()); i++){
                          sb.append("0");
                      }
                      sb.append(num);
                      return sb.toString();
                  }
                  

                  【讨论】:

                    【解决方案22】:

                    @ck@Marlon Tarak 的答案是唯一使用char[] 的答案,这对于每秒多次调用填充方法的应用程序是最好的方法。但是,它们没有利用任何数组操作优化,并且根据我的喜好被覆盖了一些;这可以通过完全没有循环来完成。

                    public static String pad(String source, char fill, int length, boolean right){
                        if(source.length() > length) return source;
                        char[] out = new char[length];
                        if(right){
                            System.arraycopy(source.toCharArray(), 0, out, 0, source.length());
                            Arrays.fill(out, source.length(), length, fill);
                        }else{
                            int sourceOffset = length - source.length();
                            System.arraycopy(source.toCharArray(), 0, out, sourceOffset, source.length());
                            Arrays.fill(out, 0, sourceOffset, fill);
                        }
                        return new String(out);
                    }
                    

                    简单的测试方法:

                    public static void main(String... args){
                        System.out.println("012345678901234567890123456789");
                        System.out.println(pad("cats", ' ', 30, true));
                        System.out.println(pad("cats", ' ', 30, false));
                        System.out.println(pad("cats", ' ', 20, false));
                        System.out.println(pad("cats", '$', 30, true));
                        System.out.println(pad("too long for your own good, buddy", '#', 30, true));
                    }
                    

                    输出:

                    012345678901234567890123456789
                    cats                          
                                              cats
                                    cats
                    cats$$$$$$$$$$$$$$$$$$$$$$$$$$
                    too long for your own good, buddy 
                    

                    【讨论】:

                    • 您可以使用getCharsString 将其内容直接复制到out 数组中,而不是调用source.toCharArray(),后跟System.arraycopy。我什至会考虑将实现简化为char[] out = new char[length]; Arrays.fill(out, 0, length, fill); source.getChars(0, source.length(), out, right? 0: length - source.length()); return new String(out);;虽然这看起来像 fill 会做更多的工作,但它实际上允许 JVM 消除默认的零填充。
                    【解决方案23】:

                    Java oneliners,没有花哨的库。

                    // 6 characters padding example
                    String pad = "******";
                    // testcases for 0, 4, 8 characters
                    String input = "" | "abcd" | "abcdefgh"
                    

                    垫左,不要限制

                    result = pad.substring(Math.min(input.length(),pad.length())) + input;
                    results: "******" | "**abcd" | "abcdefgh"
                    

                    垫右,不要限制

                    result = input + pad.substring(Math.min(input.length(),pad.length()));
                    results: "******" | "abcd**" | "abcdefgh"
                    

                    垫左,限制垫长度

                    result = (pad + input).substring(input.length(), input.length() + pad.length());
                    results: "******" | "**abcd" | "cdefgh"
                    

                    Pad Right,限制pad长度

                    result = (input + pad).substring(0, pad.length());
                    results: "******" | "abcd**" | "abcdef"
                    

                    【讨论】:

                      【解决方案24】:

                      所有字符串操作通常都需要非常高效——尤其是在处理大量数据时。我想要一些快速灵活的东西,类似于你在 plsql pad 命令中得到的东西。另外,我不想只为一件小事包含一个巨大的库。考虑到这些考虑,这些解决方案中没有一个是令人满意的。这是我提出的解决方案,具有最好的基准测试结果,如果有人可以改进它,请添加您的评论。

                      public static char[] lpad(char[] pStringChar, int pTotalLength, char pPad) {
                          if (pStringChar.length < pTotalLength) {
                              char[] retChar = new char[pTotalLength];
                              int padIdx = pTotalLength - pStringChar.length;
                              Arrays.fill(retChar, 0, padIdx, pPad);
                              System.arraycopy(pStringChar, 0, retChar, padIdx, pStringChar.length);
                              return retChar;
                          } else {
                              return pStringChar;
                          }
                      }
                      
                      • 注意它是用 String.toCharArray() 调用的,结果可以用 new String((char[])result) 转换为 String。这样做的原因是,如果您应用多个操作,您可以在 char[] 上执行所有操作,而不是继续在格式之间进行转换 - 在幕后,String 存储为 char[]。如果这些操作包含在 String 类本身中,效率会提高一倍 - 速度和内存方面。

                      【讨论】:

                      • 这确实看起来是最有效的方法
                      【解决方案25】:

                      Dzone找到这个

                      用零填充:

                      String.format("|%020d|", 93); // prints: |00000000000000000093|
                      

                      【讨论】:

                      • 这个应该就是答案了,简洁明了,不需要安装外部库。
                      • 适用于数值,但不适用于字符串值:即,对于“A83”,它将不起作用。百分比后面的 0 将引发异常。
                      【解决方案26】:

                      使用此功能。

                      private String leftPadding(String word, int length, char ch) {
                         return (length > word.length()) ? leftPadding(ch + word, length, ch) : word;
                      }
                      

                      如何使用?

                      leftPadding(month, 2, '0');
                      

                      输出: 01 02 03 04 .. 11 12

                      【讨论】:

                        【解决方案27】:

                        从 Java 11 开始,String.repeat(int) 可用于左/右填充给定字符串。

                        System.out.println("*".repeat(5)+"apple");
                        System.out.println("apple"+"*".repeat(5));
                        

                        输出:

                        *****apple
                        apple*****
                        

                        【讨论】:

                        • Java 11 的最佳答案!
                        • 用于填充数字取决于字符串长度。如果不需要填充(负数)会怎样?
                        【解决方案28】:

                        如何使用递归? 下面给出的解决方案与所有 JDK 版本兼容,不需要外部库:)

                        private static String addPadding(final String str, final int desiredLength, final String padBy) {
                            String result = str;
                            if (str.length() >= desiredLength) {
                                return result;
                            } else {
                                result += padBy;
                                return addPadding(result, desiredLength, padBy);
                            }
                        }
                        

                        注意:此解决方案将附加填充,稍加调整即可为填充值添加前缀。

                        【讨论】:

                          【解决方案29】:

                          对于那些字符串很长的人来说,这是一个并行版本:-)

                          int width = 100;
                          String s = "129018";
                          
                          CharSequence padded = IntStream.range(0,width)
                                      .parallel()
                                      .map(i->i-(width-s.length()))
                                      .map(i->i<0 ? '0' :s.charAt(i))
                                      .collect(StringBuilder::new, (sb,c)-> sb.append((char)c), (sb1,sb2)->sb1.append(sb2));
                          

                          【讨论】:

                            【解决方案30】:

                            这是一个高效实用程序类,适用于left padright padcenter pad Java 中字符串的零填充

                            package com.example;
                            
                            /**
                             * Utility class for left pad, right pad, center pad and zero fill.
                             */
                            public final class StringPadding {
                            
                                public static String left(String string, int length, char fill) {
                            
                                    if (string.length() < length) {
                            
                                        char[] chars = string.toCharArray();
                                        char[] output = new char[length];
                            
                                        int delta = length - chars.length;
                            
                                        for (int i = 0; i < length; i++) {
                                            if (i < delta) {
                                                output[i] = fill;
                                            } else {
                                                output[i] = chars[i - delta];
                                            }
                                        }
                            
                                        return new String(output);
                                    }
                            
                                    return string;
                                }
                            
                                public static String right(String string, int length, char fill) {
                            
                                    if (string.length() < length) {
                            
                                        char[] chars = string.toCharArray();
                                        char[] output = new char[length];
                            
                                        for (int i = 0; i < length; i++) {
                                            if (i < chars.length) {
                                                output[i] = chars[i];
                                            } else {
                                                output[i] = fill;
                                            }
                                        }
                            
                                        return new String(output);
                                    }
                            
                                    return string;
                                }
                            
                                public static String center(String string, int length, char fill) {
                            
                                    if (string.length() < length) {
                            
                                        char[] chars = string.toCharArray();
                            
                                        int delta = length - chars.length;
                                        int a = (delta % 2 == 0) ? delta / 2 : delta / 2 + 1;
                                        int b = a + chars.length;
                            
                                        char[] output = new char[length];
                                        for (int i = 0; i < length; i++) {
                                            if (i < a) {
                                                output[i] = fill;
                                            } else if (i < b) {
                                                output[i] = chars[i - a];
                                            } else {
                                                output[i] = fill;
                                            }
                                        }
                            
                                        return new String(output);
                                    }
                            
                                    return string;
                                }
                            
                                public static String zerofill(String string, int length) {
                                    return left(string, length, '0');
                                }
                            
                                private StringPadding() {
                                }
                            
                                /**
                                 * For tests!
                                 */
                                public static void main(String[] args) {
                            
                                    String string = "123";
                                    char blank = ' ';
                            
                                    System.out.println("left pad:    [" + StringPadding.left(string, 10, blank) + "]");
                                    System.out.println("right pad:   [" + StringPadding.right(string, 10, blank) + "]");
                                    System.out.println("center pad:  [" + StringPadding.center(string, 10, blank) + "]");
                                    System.out.println("zero fill:   [" + StringPadding.zerofill(string, 10) + "]");
                                }
                            }
                            

                            这是输出:

                            left pad:    [       123]
                            right pad:   [123       ]
                            center pad:  [    123   ]
                            zero fill:   [0000000123]
                            

                            【讨论】:

                              猜你喜欢
                              • 2019-11-21
                              • 2021-01-31
                              • 1970-01-01
                              • 1970-01-01
                              • 2011-12-07
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多