我能在Java中使用字符串乘法来重复序列吗?

22 浏览
0 Comments

我能在Java中使用字符串乘法来重复序列吗?

这个问题已经有了答案:

如何简单地重复一个字符串

我有像下面这样的东西:

int i = 3;
String someNum = "123";

我想将i个 \"0\" 追加到字符串someNum。 它有类似于Python的重复字符串的方法吗?

所以我可以只写:

someNum = sumNum + ("0" * 3);

或者类似的东西?

在这种情况下,我的最终结果将是:

\"123000\"。

admin 更改状态以发布 2023年5月25日
0
0 Comments

不行,但你可以在Scala中实现! (然后使用任何Java实现编译和运行它!!!)

现在,如果你想在Java中以简单的方式实现,可以使用Apache commons-lang包. 假设你在使用maven,将以下依赖项添加到pom.xml中:

    
        commons-lang
        commons-lang
        2.4
    

然后使用StringUtils.repeat如下:

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

0
0 Comments

在没有依赖的纯Java中最简单的方法是以下一行代码:

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

将生成次数替换为重复的字符串(或字符)中的"-"。

这个方法只是创建一个包含n个0x00字符的空字符串,内置的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");
    }
}

0