Java字符串乘法

3

4
在Python中,字符串乘法的结果是将原始字符串重复指定次数的新字符串。 - Sunil Kumar B M
它连续连接字符串。例如:>>> 'a' * 10 'aaaaaaaaaa' - I82Much
请查看我的回答并告诉我这是否是您想要的内容... - Fahim Parkar
4个回答

6
char[10] c = new char[10];
Arrays.fill(c, '*');
String str = new String(c);

为了避免每次都创建新的字符串。

6

您可以使用 Dollar 来实现您的目的(它是一个Java API,将集合、数组、迭代器/可迭代对象和字符序列进行了统一)。

String str = $("*").repeat(count); 

通过这种方式,您将获得所需的结果"**********"

目前Java还没有这个功能。


这个语句实际上是做什么的?str 的最终结果是什么? - Sunil Kumar B M
你说过“Java目前没有这个功能”。这是否意味着它已被弃用? - Sunil Kumar B M
1
哦,抱歉,只是拼写错误:D - Chuck Norris
我听到你了。我使用拼写检查器,但它不会发现那个错误,因为你输入的是另一个单词的正确拼写。编辑得很好。+1 :) - Andrew Thompson
@mesiesta:检查一下我的答案吧 :D 一行代码,简短而甜美,就像你一样... - Fahim Parkar
显示剩余2条评论

4

这样怎么样?

System.out.println(String.format("%10s", "").replace(' ', '*'));

这会给我输出**********

我认为这就是你想要的...

更新 1

int yournumber = 10;
System.out.println(String.format("%" + yournumber + "s","*").replace(' ', '*'));

Good Luck!!!


我们可以使用运行时的值而不是10吗? - Siva Arunachalam
当然: int n = 10; System.out.println(String.format("%" + n + "s", "").replace(' ', '*')); - Jesper

0

在Java中最简单的方法是使用for()循环:

String s = "";
for (int i = 0; i < 10; i++) {
    s += "*";
}
System.out.println(s);

1
我更倾向于Mesiesta的回答而不是你的... - Fahim Parkar
1
它每次都会创建一个新的字符串,因为Java中的字符串是不可变的。我建议使用Dollar或者使用StringBuilder类来代替String。 - Chuck Norris
@mesiesta 你说得对,每次都会创建一个新的 String,但不是因为 String 的不可变性。而是因为每次迭代都会创建一个与之前不同的 String。例如:one-star、two-stars、three-stars 等等。 - yair
这是一个可怕的解决方案。说真的,@yair你在这里肯定是错的。它创建了一个新的字符串,因为它们是不可变的,s不能附加到它上面必须重新创建。实际上,所有字符串修改都需要重新创建字符串,因为它们是不可变的。 - fIwJlxSzApHEZIl
@anon58192932,我们都认同这个解决方案并不是最理想的,但请避免使用像“可恶的”这样令人不悦的词语。 - yair
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接