在java中重复一个字符串的简单方法?

  • 回答 (4)
  • 关注 (0)
  • 查看 (3214)

我正在寻找一个简单的公共方法或运算符,允许我重复一些字符串n次。我知道我可以用for循环写这个,但是我希望在必要的时候避免循环,并且在某个地方应该存在一个简单的直接方法。

String str = "abc";
String repeated = str.repeat(3);
repeated.equals("abcabcabc");

相关:

重复字符串JavaScript

创建NSString重复另一个字符串给定的次数

编辑

我试图避免循环时,他们是不完全必要的,因为:

即使它们被隐藏在另一个函数中,它们也会增加代码的行数。

有人阅读我的代码必须弄清楚我在做什么循环。即使它被评论并且有一个有意义的变量名,他们仍然必须确保它没有做任何“聪明”的事情。

程序员喜欢把巧妙的东西放在循环中,即使我把它写成“只做它打算做的事情”,也不排除有人来,并增加一些额外的聪明的“修复”。

他们很容易出错。对于涉及索引的循环往往会产生一个错误。

对于循环往往重用相同的变量,增加真正难以发现范围的错误的机会。

nr348399nr348399修改于
用户2145180修改于

String.format("%0" + 5 + "d", 0).replace("0", "aaabc");

String.join("", Collections.nCopies(5, "aaabc"));

new String(new char[5]).replace("\0", "aaabc");

repeatString("aaabc", 5, "");//见后面的方法

执行次数1000_000

耗时毫秒

1797

167

593

142

根据前面的几位大佬进行总结和测试,相对而言,2和4的耗时比较少,多次测试的结果4都比2用时更少一点。

注重性能就选择2或4

public static String repeatString(String str, int n, String seg) {

StringBuffer sb = new StringBuffer();

for (int i = 0; i < n; i++) {

sb.append(str).append(seg);

}

return sb.substring(0, sb.length() - seg.length());

}

热门问答

关于Linux DNS服务器设置问题?

mariolu

腾讯 · 后台开发工程师 (已认证)

CDN及云从业者
推荐

CNAME到XX.com,这个XX.COM本身也是需要能解析ip的。CNAME到XX.COM的意义是你能解析到CDN厂商A的域名XX.COM或者CDN厂商B的域名YY.COM。所以需要提供服务的CDN厂商给你他们的域名。这样,DNS查询链路才是完整的。

两台腾讯云的服务器在同一个地区,内网网段也相同,都是172.17.0.X,为啥ping内网地址不通?

HappyLau谈云计算

腾讯云 · 云计算高级工程师 (已认证)

专注于公有云,私有云解决方案,在kubernetes,openstack,kvm,ceph,linux,shell有丰富的实战经验。
推荐已采纳

首先看下两台机器是否在同个vpc内,在同个vpc内默认网络可以互通,如果不在同个vpc内需要通过对等连接或者云联网打通,如果在同个vpc下无法互通,请检查下安全组和os的防火墙规则,放行icmp连接。

云服务器不能访问外部网站?

HappyLau谈云计算

腾讯云 · 云计算高级工程师 (已认证)

专注于公有云,私有云解决方案,在kubernetes,openstack,kvm,ceph,linux,shell有丰富的实战经验。
推荐
不能访问外部网站一般是网络和dns的问题,按照如下步骤排查: 1. 确保CVM有外网ip或者NAT转换,使用ping测试下外网的连通性,如果不通请购买弹性公网IP,先申请后购买参考https://cloud.tencent.com/document/product/215/201...... 展开详请

我刚申请的服务器,缺省给我的是linux,可我要Windows,怎么办?

蒋小爱

腾讯云 · 技术支持 (已认证)

推荐
云服务器提供 不同平台重装:仅支持中国大陆地区(不含中国香港)。 例如,Linux 重装为 Windows,Windows 重装为 Linux 。 参考 重装系统: https://cloud.tencent.com/document/product/213/4933 图片.p...... 展开详请

合作伙伴学院里的学习视频测试题和在线培训系统里的测试题能否提供答案?

骑牛看晨曦love&peace~
推荐

http://tencentcloudxuexi.com 合作伙伴可以登录此平台做练习题,有答案的喔

求问keil5项目无法下载到开发板该怎么解决?

Supowang

腾讯 · 高级工程师 (已认证)

腾讯物联网操作系统TencentOS tiny产品接口人---岁寒知松柏,做最好的自己!
推荐
请检查st-link的驱动和stlink硬件,如果不行,尝试换其他stlink下载器试试,谢谢! 如果还没有解决,请加TencentOS tiny官方QQ群提问,谢谢! qq.png ... 展开详请

关于作者

所属标签

扫码关注云+社区

领取腾讯云代金券