首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在给定拆分位置数组的情况下拆分字符串?

问如何在给定拆分位置数组的情况下拆分字符串?
EN

Stack Overflow用户
提问于 2017-01-09 04:17:54
回答 2查看 67关注 0票数 1

我使用的是Ruby2.4和Rails 5。

5、8、10

我如何获取上面的数组和一个字符串,并形成被上述索引拆分的字符串数组?FOr实例,如果字符串为

代码语言:javascript
复制
abcdefghijklmn

并根据上面的索引对其进行拆分,我将得到一个包含以下字符串的数组

代码语言:javascript
复制
abcde
fgh
ij
klmn
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-09 04:23:11

尝尝这个

代码语言:javascript
复制
str = "abcdefghijklmn"
positions = [5, 8, 10]

parts = [0, *positions, str.size].each_cons(2).map { |a, b| str[a...b] }
# => ["abcde", "fgh", "ij", "klmn"]

或,

如果位置是恒定的并且在运行前就知道了(例如,如果它们是电话号码或信用卡的格式),那么只需使用regexp

代码语言:javascript
复制
str.match(/(.....)(...)(..)(.*)/).captures
# => ["abcde", "fgh", "ij", "klmn"]
票数 2
EN

Stack Overflow用户

发布于 2017-01-09 08:16:19

这将完成工作

代码语言:javascript
复制
str = "abcdefghijklmn"
arr_1 = [5, 8, 10]
arr_2, prev = [], 0

(arr_1.length + 1).times do |x|
  if arr_1[x] == nil then arr_1[x] = str.size end
  arr_2 << str[prev..arr_1[x] -1]
  prev = arr_1[x] 
end

p arr_2

---------------------------------------
     Program Run Output

["abcde", "fgh", "ij", "klmn"]
---------------------------------------

我希望这能帮到你

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

https://stackoverflow.com/questions/41537404

复制
相关文章

相似问题

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