【问题标题】:How to create String of length consisting of same character repeated multiple times? [duplicate]如何创建由多次重复的相同字符组成的长度字符串? [复制]
【发布时间】:2013-05-23 21:51:52
【问题描述】:

如果我想要一个包含 n 字符 A 的实例的 String s,那么这可以在 Java 中更清晰地完成吗

public static String stringOfSize(int size, char ch) {
    StringBuilder s = new StringBuilder();
    while (size-- > 0) {
        s.append(ch);
    }
    return s.toString();
}

我们可以做得更好吗?只是想知道。

【问题讨论】:

  • 如果你不改变参数变量会更干净,否则我觉得很好。
  • 您应该预先确定您的构建器的大小。 (或者只使用char[])

标签: java


【解决方案1】:

您可以执行以下操作:

return StringUtils.repeat(ch, size);

注意:StringUtils 不是 JDK 内置的 - 请参阅 http://commons.apache.org/proper/commons-lang/

【讨论】:

  • JDK中没有内置的StringUtils。
  • 如果StringUtils 可用,则只需StringUtils#repeat()。
  • @fge - 你是对的,添加了一条注释
  • @Keppil - 谢谢,好多了
【解决方案2】:

这段代码完全没有问题...但也许你可以使用Arrays.fill():

public static String stringOfSize(int size, char ch)
{
    final char[] array = new char[size];
    Arrays.fill(array, ch);
    return new String(array);
}

【讨论】:

  • 我认为这个选项是最好的。为了提高速度(但消耗更多内存),我们还可以在此解决方案中添加缓存。将结果存储在Map<Integer, Map<Character, String>> cache 中,然后无需生成即可获得正确的字符串。
猜你喜欢
  • 1970-01-01
  • 2014-02-06
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 2012-05-10
  • 1970-01-01
相关资源
最近更新 更多