首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby中,我如何生成一长串重复的文本?

在Ruby中,我如何生成一长串重复的文本?
EN

Stack Overflow用户
提问于 2010-02-19 22:33:06
回答 2查看 57.7K关注 0票数 143

在ruby中快速生成长字符串的最好方法是什么?这是可行的,但速度非常慢:

代码语言:javascript
复制
str = ""
length = 100000
(1..length).each {|i| str += "0"}

我还注意到,创建一个长度合适的字符串,然后将其附加到现有字符串直到所需的长度,运行速度要快得多:

代码语言:javascript
复制
str = ""
incrementor = ""
length = 100000
(1..1000).each {|i| incrementor += "0"}
(1..100).each {|i| str += incrementor}

还有其他建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-19 22:36:03

代码语言:javascript
复制
str = "0" * 999999
票数 318
EN

Stack Overflow用户

发布于 2010-02-19 23:04:45

另一个相对较快的选择是

代码语言:javascript
复制
str = '%0999999d' % 0

通过基准测试

代码语言:javascript
复制
require 'benchmark'
Benchmark.bm(9)  do |x|
  x.report('format  :') { '%099999999d' % 0 }
  x.report('multiply:') { '0' * 99999999 }
end

表明乘法仍然更快。

代码语言:javascript
复制
               user     system      total        real
format  :  0.300000   0.080000   0.380000 (  0.405345)
multiply:  0.080000   0.080000   0.160000 (  0.172504)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2296994

复制
相关文章

相似问题

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