创建一个包含 n 个字符的字符串

新手上路,请多包涵

Java中有没有一种方法可以创建具有指定数量的指定字符的字符串?就我而言,我需要创建一个包含十个空格的字符串。我当前的代码是:

 final StringBuffer outputBuffer = new StringBuffer(length);
for (int i = 0; i < length; i++){
   outputBuffer.append(" ");
}
return outputBuffer.toString();

有没有更好的方法来完成同样的事情?特别是,我想要快速的东西(在执行方面)。

原文由 C. Ross 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

for 循环将由编译器优化。在像您这样的情况下,您不需要自己关心优化。相信编译器。

顺便说一句,如果有办法创建一个包含 n 个空格字符的字符串,那么它的编码方式与您刚才所做的相同。

原文由 kalkin 发布,翻译遵循 CC BY-SA 4.0 许可协议

可能是使用 String API 的最短代码,专门用于:

 String space10 = new String(new char[10]).replace('\0', ' ');

System.out.println("[" + space10 + "]");
// prints "[          ]"


作为一种方法,无需直接实例化 char

 import java.nio.CharBuffer;

/**
 * Creates a string of spaces that is 'spaces' spaces long.
 *
 * @param spaces The number of spaces to add to the string.
 */
public String spaces( int spaces ) {
  return CharBuffer.allocate( spaces ).toString().replace( '\0', ' ' );
}

调用使用:

 System.out.printf( "[%s]%n", spaces( 10 ) );

原文由 polygenelubricants 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题