首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以在Java中将字符串相乘以重复序列吗?

我可以在Java中将字符串相乘以重复序列吗?
EN

Stack Overflow用户
提问于 2010-02-13 06:16:28
回答 17查看 185K关注 0票数 104

我有一些类似以下的东西:

代码语言:javascript
复制
int i = 3;
String someNum = "123";

我想将i“0”附加到someNum字符串。它有没有什么方法可以像Python那样乘以一个字符串来重复它呢?

所以我可以直接说:

代码语言:javascript
复制
someNum = sumNum + ("0" * 3);

或者类似的东西?

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

"123000“。

EN

回答 17

Stack Overflow用户

发布于 2010-02-13 06:19:21

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

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

代码语言:javascript
复制
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.4</version>
    </dependency>

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

代码语言:javascript
复制
import org.apache.commons.lang.StringUtils
...
someNum = sumNum + StringUtils.repeat("0", 3);
票数 37
EN

Stack Overflow用户

发布于 2011-06-18 00:58:24

使用Strings#repeat()Google Guava提供了另一种方法来实现这一点

代码语言:javascript
复制
String repeated = Strings.repeat("pete and re", 42);
票数 26
EN

Stack Overflow用户

发布于 2010-02-13 06:24:26

我想到了两种方式:

代码语言:javascript
复制
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可以缩写为:

代码语言:javascript
复制
someNum += String.format("%0" + i + "d", 0);
System.out.println(someNum); // 123000

有关String#format()的更多信息,请访问its API docjava.util.Formatter

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2255500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档