假设我有一个字符串
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/