【问题标题】:How to repeat string "n" times in java? [duplicate]如何在java中重复字符串“n”次? [复制]
【发布时间】:2013-10-12 10:40:53
【问题描述】:

我希望能够将一串文本重复“n”次:

类似的东西-

字符串“X”, 用户输入 = n, 5 = n, 输出:XXXXX

我希望这是有道理的... (请尽可能具体)

【问题讨论】:

  • 很容易实现。到目前为止你尝试了什么?
  • 我一直在尝试使用 for 循环,但运气不佳...
  • for 循环看起来如何?此外,运气与它无关。对于像这样基本的东西,您应该遵循基本教程,而不是在这里提问。
  • +1 我实际上认为这是一个有效的问题,因为在其他语言中有一个运算符可以做到这一点: perl -e "print 'X' x 5" -> XXXXX
  • Java 11 救援:String s = "X"; String newStr = s.repeat(n);

标签: java loops for-loop


【解决方案1】:

一个简单的循环就可以完成这项工作:

int n = 10;
String in = "foo";

String result = "";
for (int i = 0; i < n; ++i) {
    result += in;
}

或者对于更大的字符串或更高的n值:

int n = 100;
String in = "foobarbaz";

// the parameter to StringBuilder is optional, but it's more optimal to tell it
// how much memory to preallocate for the string you're about to built with it.
StringBuilder b = new StringBuilder(n * in.length());
for (int i = 0; i < n; ++i) {
    b.append(in);
}
String result = b.toString();

【讨论】:

  • 您应该使用n * in.length() 的参数构造您的StringBuilder。无论如何,+1
  • 我不知道您的代码与您的要求有什么关系;此外,cmets 不是发布超过 1 行的 sn-ps 的正确位置。一般来说,我建议通过阅读书籍或教程来学习 Java。此外,在人们已经回答了您的原始问题之后继续提出越来越多的问题也不是一个好习惯。
  • 再次:首先,这实际上是一个新问题;其次,这是一项微不足道的任务,如果您无法独立解决,您真的应该首先阅读 Java 书籍或教程。 (...或任何其他编程语言)
【解决方案2】:
str2 = new String(new char[10]).replace("\0", "hello");

注意:这个答案最初是由 user102008 在这里发布的:Simple way to repeat a String in java

【讨论】:

    【解决方案3】:

    要重复字符串 n 次,我们在 Apache commons 的 Stringutils 类中有一个重复方法。在重复方法中,我们可以给出字符串和字符串应该重复的次数以及分隔重复字符串的分隔符。

    例如:StringUtils.repeat("Hello"," ",2);

    返回“你好你好”

    在上面的例子中,我们用空格作为分隔符重复了两次 Hello 字符串。我们可以在 3 个参数中给出 n 次,在第二个参数中给出任何分隔符。

    Click here for complete example

    【讨论】:

    • 这也是我的首选解决方案,因为它可读性很强,尤其是在使用分隔符时,它会处理特殊情况
    • 该类实际上是“StringUtils”而不是“Stringutils”
    猜你喜欢
    • 2010-09-21
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2013-07-27
    • 2014-04-17
    • 2022-08-19
    相关资源
    最近更新 更多