您可以每隔n个元素对集合元素(在本例中为Characters)进行分组,如下所示:
extension Collection {
func groups(of n: Int) -> [SubSequence] {
var startIndex = indices.startIndex
var groups: [SubSequence] = []
while startIndex < endIndex {
let endIndex = indices.index(startIndex, offsetBy: n, limitedBy: indices.endIndex) ?? indices.endIndex
groups.append(self[startIndex..<endIndex])
startIndex = endIndex
}
return groups
}
}
let numbers = "1234567"
let groups = numbers.groups(of: 2)
print(groups) // ["12", "34", "56", "7"]
编辑/更新 :
如果要将超出的字符追加到最后一组:
extension Collection {
func groups(of n: Int) -> [SubSequence] {
var startIndex = self.startIndex
let count = self.count
return (0..<count/n).map { _ in
var endIndex = index(startIndex, offsetBy: n, limitedBy: self.endIndex) ?? self.endIndex
if count % n > 0, distance(from: self.startIndex, to: startIndex) > (count / n) {
endIndex = self.endIndex
}
defer { startIndex = endIndex }
return self[startIndex..<endIndex]
}
}
}
let numbers = "1234567"
let groups = numbers.groups(of: 2)
print(groups) // ["12", "34", "567"]
我想在JavaScript中使用空格作为分隔符将字符串分成固定大小的块(例如每个140个字符)(即它不应该分词),注意:它应该处理换行符目前我使用的是wordwrap npm包,但它不处理新行符。 它适用于普通文本,但如果文本包含新行标记,我会得到以下错误: syntaxerror:exports.runinthiscontext(VM.js:73:16) 在module._compile(mod
问题内容: 我将如何能够采取像一个字符串 ,并将其分成4个长度元组像(,,) 问题答案: 用途:
问题内容: 我想将一个非常大的字符串(例如10,000个字符)分割成N个大小的块。 就性能而言,最佳方法是什么? 例如: 被2分割成。 使用这种方法是否可能实现?如果可以,从性能角度来看,这是否是最佳方法? 问题答案: 您可以执行以下操作: 该方法仍可用于大小不是块大小的整数倍的字符串: 通常,对于要从中提取最多 n个 大小的子字符串的任何字符串,都可以执行以下操作: 如果您的字符串可以包含换行符
我有一个随机地址字符串,如 我想将其拆分为具有两个条件的字符串数组: 该字符串数组的每个元素的长度小于或等于20 字符串数组的元素没有尴尬的结尾 例如,每20个字符拆分将产生: 但正确的输出是: 注意字符串数组中的每个元素是如何小于或等于20的。 以上是我对这段代码的输出:
问题内容: 我试图在网上四处寻找将字符串拆分为字符数组的答案,但似乎找不到一个简单的方法 似乎不像Ruby那样工作。有没有一种简单的方法可以不循环? 问题答案:
问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案: