用于完成StringBuffer宽度的尾随空格(Java)

用于完成StringBuffer宽度的尾随空格(Java),java,string,Java,String,我想创建一个带有尾随空格的字符串来完成stringbuffer宽度 e、 g: 输出是 “Hello”不带任何尾随空格。 但我想要的是带有5个尾随空格的“Hello” 在上面的例子中,因为“Hello”有5个字符,所以后面应该还有5个空格 请注意,thx只需添加一个空格,直到长度小于10: while(str.length() < 10) { str.append(" "); } while(str.length()

我想创建一个带有尾随空格的字符串来完成stringbuffer宽度

e、 g:

输出是 “Hello”不带任何尾随空格。 但我想要的是带有5个尾随空格的“Hello”

在上面的例子中,因为“Hello”有5个字符,所以后面应该还有5个空格


请注意,thx只需添加一个空格,直到长度小于10:

while(str.length() < 10) {
    str.append(" ");
}
while(str.length()<10){
str.append(“”);
}

只需添加一个空格,直到长度小于10:

while(str.length() < 10) {
    str.append(" ");
}
while(str.length()<10){
str.append(“”);
}

似乎很直截了当

提示:

  • 对于循环,将迭代器初始化为字符串的长度,并循环到10
  • 内部循环将空格附加到字符串
    看起来很直截了当

    提示:

  • 对于循环,将迭代器初始化为字符串的长度,并循环到10
  • 内部循环将空格附加到字符串
    下面是一个右键填充字符串的方法。输入字符串,然后int表示所需的pad

    公共静态字符串padRight(字符串s,int n){
    返回字符串。格式(“%1$-”+n+“s”,s);
    }


    您可以先获取字符串,然后将其附加到StringBuffer(或StringBuilder)中。

    这里有一个方法可以正确填充字符串。输入字符串,然后int表示所需的pad

    公共静态字符串padRight(字符串s,int n){
    返回字符串。格式(“%1$-”+n+“s”,s);
    }


    您可以先获取字符串,然后将其附加到您的StringBuffer(或StringBuilder)中。

    StringBuffer实现可附加。您可以使用此StringBuffer实例化格式化程序对象,然后让格式化程序为您执行以下工作:

    StringBuilder sb = new StringBuilder();  // I prefer StringBuilder to StringBuffer
    Formatter formatter = new Formatter(sb);
    formatter.format("%-10s", "hello");
    

    StringBuffer实现可追加的。您可以使用此StringBuffer实例化格式化程序对象,然后让格式化程序为您执行以下工作:

    StringBuilder sb = new StringBuilder();  // I prefer StringBuilder to StringBuffer
    Formatter formatter = new Formatter(sb);
    formatter.format("%-10s", "hello");
    
    在代码中:

    Stringbuffer str = new Stringbuffer(10);  //Create a string with 10 spaces.
    
    不创建包含10个空格的字符串。它实际上创建了一个容量为10的字符串。 您可以看到java文档:

    对于答案,您可以按照上面的一些答案进行操作,例如在hello后面添加空格等。

    在代码中:

    Stringbuffer str = new Stringbuffer(10);  //Create a string with 10 spaces.
    
    不创建包含10个空格的字符串。它实际上创建了一个容量为10的字符串。 您可以看到java文档:


    对于答案,您可以按照上面的一些答案进行操作,例如在hello后面添加空格等。

    其他答案说明如何解决您的问题。我只想指出问题中的一个误解

    StringBuffer str = new StringBuffer(10);  //Create a string with 10 spaces.
    
    事实上,这不是StringBuffer(或StringBuilder)构造函数参数的含义。它实际上是在指定初始容量。这本质上是一个提示,提示实现最初为10个字符分配空间

    • 它不会设置内容的实际大小。实际大小由放入缓冲区/生成器的字符数决定

    • 它不限制缓冲区/生成器的大小。如果添加的字符数超过10个,则实现会安静而高效地扩展缓冲区/生成器的备份存储


    (另外,除非您需要线程安全缓冲区,否则最好使用
    StringBuilder
    而不是
    StringBuffer

    其他答案说明了如何解决您的问题。我只想指出问题中的一个误解

    StringBuffer str = new StringBuffer(10);  //Create a string with 10 spaces.
    
    事实上,这不是StringBuffer(或StringBuilder)构造函数参数的含义。它实际上是在指定初始容量。这本质上是一个提示,提示实现最初为10个字符分配空间

    • 它不会设置内容的实际大小。实际大小由放入缓冲区/生成器的字符数决定

    • 它不限制缓冲区/生成器的大小。如果添加的字符数超过10个,则实现会安静而高效地扩展缓冲区/生成器的备份存储

    (另外,除非您需要线程安全缓冲区,否则最好使用
    StringBuilder
    而不是
    StringBuffer