arrays - 朱莉娅:我如何将一个字符串切割成一个数组{String}?
问题描述
我有一个超长的字符串(想想数百万个字母),我想把它切成一个给定长度数组的字符串数组。例如
string1 = "abcdefgh"
split_into_array(string1, lengths) = ....
这样
split_into_array("abcdefgh", [2,3,1,2])
应该给
["ab", "cde", "f", "gh"]
另外,我不再需要原始字符串,所以最好是无副本解决方案。
解决方案
您可以使用字符串切片:
function split_into_array(str::String, len::Array{Int})
j = 1
r = Array{String}(undef, length(len))
for (i, n) in enumerate(len)
r[i] = str[j:j + n - 1]
j += n
end
return r
end
@show split_into_array("abcdefgh", [2, 3, 1, 2])
输出:
split_into_array("abcdefgh", [2, 3, 1, 2]) = ["ab", "cde","f", "gh"]
推荐阅读
- javascript - Angular 2:了解 DOM 元素是否在视口内
- javascript - 在 React Native 中由 onChangeText 触发的 useLazyQuery
- javascript - CSS 转换仅在类返回 React.js 时触发
- google-apps-script - 提交按钮后如何将值从一个 Google 表格复制到另一个 Google 表格
- jquery - jQuery - 使用网格/列表视图状态展开/折叠
- javascript - 通过 Javascript 处理进度条
- ios - 强制对象存活直到执行块的正确方法
- python - Scrapy - 没有下一页的分页(Python)
- php - LastFM track.updateNow 在 PHP 中播放
- python - Django CreateView在提交后不保存和加载成功的url