arrays - 如何在 Ruby 中的每第 n 个字符后有效地拆分一个很长(数百万个字符)的字符串?

标签 arrays ruby string split

假设我有一个字符串

string = "hellohellohey"

我想每隔 2 个字符拆分一次,所以它看起来像这样

string = ["he","ll","oh","el","lo","he","y"]

我尝试使用 scan(/.{2}/) 方法,但如果数组项不能除以 2,它就不起作用。

编辑:有必要通知您,2 个字符的东西只是一个例子。我正在做一些大事,所以我将每 8 百万 个字符拆分一次。因此,将其拆分为单个字符并使用 each_slice 在这里不起作用。它只会卡住我的笔记本电脑。

最佳答案

处理(非常)大的字符串时,将它们包装在 StringIO 中会很有用。 .它提供了对字符串的类似文件的高效访问。

例如,您可以通过 StringIO#each 读取每 n 个字符:

string = "hellohellohey"
string_io = StringIO.new(string)

string_io.each(5) do |substring|
  p substring
end

输出:

"hello"
"hello"
"hey"

关于arrays - 如何在 Ruby 中的每第 n 个字符后有效地拆分一个很长(数百万个字符)的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55816634/

相关文章:

Ruby:这两个数组有什么区别?

ruby-on-rails - Ruby 和 Rails 性能问题,服务器

java - 如何仅删除上次通话的日志?

c - 如何检查用户是否按下了回车键?

arrays - 数组在PowerShell中的Function之外没有输出

PHP/MySQL/Jquery - 构建关联数组并使用 JQuery $.each 输出它

javascript - 将 Javascript 的 getTime() 方法创建的时间转换为 ruby​​ Time 对象

javascript - 将数组转换为字符串时,数组中的 "null"和 "undefined"去哪里了?

python - 两种算法的效率比较 : Find the number of negative integers in a row-wise/column-wise sorted matrix

android - 从共享首选项中恢复字符串