java string重复n次,我可以乘以Java中的string重复序列?

简单Java中最简单的方法是不带依赖的,如下所示:

new String(new char[generation]).replace("\0", "-")

用重复次数代替代数,用你想要重复的string(或字符)replace“ – ”。

所有这些都是创build一个包含n个0x00字符的空string,剩下的就是内置的String#replace方法。

以下是复制和粘贴的示例:

public static String repeat(int count, String with) { return new String(new char[count]).replace("\0", with); } public static String repeat(int count) { return repeat(count, " "); } public static void main(String[] args) { for (int n = 0; n < 10; n++) { System.out.println(repeat(n) + " Hello"); } for (int n = 0; n < 10; n++) { System.out.println(repeat(n, ":-) ") + " Hello"); } }

不,但你可以在斯卡拉! (然后编译并使用任何Java实现运行它!!!!)

现在,如果你想在java中使用简单的方法,可以使用Apache commons-lang包。 假设你正在使用maven,添加这个依赖到你的pom.xml:

commons-langcommons-lang2.4

然后使用StringUtils.repeat,如下所示:

import org.apache.commons.lang.StringUtils ... someNum = sumNum + StringUtils.repeat("0", 3);

谷歌番石榴提供了另一种方式来做到这一点与Strings#repeat() :

String repeated = Strings.repeat("pete and re", 42);

想到两种方法:

int i = 3; String someNum = "123"; // Way 1: char[] zeroes1 = new char[i]; Arrays.fill(zeroes1, '0'); String newNum1 = someNum + new String(zeroes1); System.out.println(newNum1); // 123000 // Way 2: String zeroes2 = String.format("%0" + i + "d", 0); String newNum2 = someNum + zeroes2; System.out.println(newNum2); // 123000

方式2可以缩短为:

someNum += String.format("%0" + i + "d", 0); System.out.println(someNum); // 123000

关于String#format()更多信息可在其API文档和java.util.Formatter 。

如果你重复OP这样的单个字符,并且重复的最大次数不是太高,那么你可以使用一个简单的子string操作,如下所示:

int i = 3; String someNum = "123"; someNum += "00000000000000000000".substring(0, i);

不。Java没有这个function。 你必须使用StringBuilder创build你的string,以及某种types的循环。

Java 8提供了一种方式(尽pipe有点笨重)。 作为一种方法:

public static String repeat(String s, int n) { return Stream.generate(() -> s).limit(n).collect(Collectors.joining("")); }

或效率较低,但更好看恕我直言:

public static String repeat(String s, int n) { return Stream.generate(() -> s).limit(n).reduce((a, b) -> a + b); }

与美元 :

String s = "123" + $("0").repeat(3); // 123000

简单的方法做到这一点。

private String repeatString(String s,int count){ StringBuilder r = new StringBuilder(); for (int i = 0; i < count; i++) { r.append(s); } return r.toString(); }

番石榴 :

Joiner.on("").join(Collections.nCopies(i, someNum));

我不相信Java原生提供这个function,虽然它会很好。 我偶尔编写Perl代码,Perl中的x运算符非常方便重复使用string!

但是, commons-lang StringUtils 提供了这个function。 该方法被称为repeat() 。 你唯一的select是使用循环手动构build它。

不,你不能。 但是,您可以使用此function重复一个字符。

public String repeat(char c, int times){ StringBuffer b = new StringBuffer(); for(int i=0;i < times;i++){ b.append(c); } return b.toString(); }

免责声明:我在这里input。 可能有错误。

戴夫·哈特诺尔(Dave Hartnoll)的回答(我主要把这个概念带到了荒谬的概念中,也许不会在你需要任何速度的地方使用)。 这允许用一个给定的模式填充string。

int i = 3; String someNum = "123"; String pattern = "789"; someNum += "00000000000000000000".replaceAll("0",pattern).substring(0, i);

如果你不需要一个模式,但只需要任何单个字符,你可以使用它(稍微快点):

int i = 3; String someNum = "123"; char c = "7"; someNum += "00000000000000000000".replaceAll("0",c).substring(0, i);

类似于已经说过的:

public String multStuff(String first, String toAdd, int amount) { String append = ""; for (int i = 1; i <= amount; i++) { append += toAdd; } return first + append; }

inputmultStuff("123", "0", 3);

输出"123000"

我创build了一个方法来做同样的事情,你可以试一下:

public String repeat(String s, int count) { return count > 0 ? s + repeat(s, --count) : ""; }

我们可以在python中使用*创build多个string,但不能在java中使用for循环:

String sample="123"; for(int i=0;i<3;i++) { sample=+"0"; }

在Java中这样做没有捷径,就像你在Python中给出的例子。

你必须这样做:

for (;i > 0; i--) { somenum = somenum + "0"; }

最简单的方法是:

String someNum = "123000"; System.out.println(someNum);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值