gpt4 book ai didi

基于自动换行的 Swift 拆分子字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:45 24 4
gpt4 key购买 nike

这里是初级开发人员。我目前正在尝试实现一个子字符串,该子字符串每 n 个字符拆分一个字符串。

这是我的函数代码

public func split(every: Int) -> [String] {
var result = [String]()

for i in stride(from: 0, to: self.count, by: every) {
let startIndex = self.index(self.startIndex, offsetBy: i)
let endIndex = self.index(startIndex, offsetBy: every, limitedBy: self.endIndex) ?? self.endIndex
result.append(String(self[startIndex..<endIndex]))
}
return result
}

以上代码按预期工作。但是上面的代码中缺少一个,那就是自动换行。这是示例字符串

let itemName = "Japanese Matcha SM w RB -L Special Edition And Americano MS w Brown Sugar Limited Edition"
print(itemName.split(every: 26))

结果会是

["Japanese Matcha SM w RB -L", " Special Edition And Ameri", "cano MS w Brown Sugar Limi", "ted Edition"]

注意

[" Special Edition And Ameri"], ["cano MS w Brown Sugar Limi"]

我想弄清楚如何根据每个 n 个字符执行自动换行算法,但找不到任何线索。

例如,从上面的例子,如何生成数组就变成了,

[" Special Edition And"], ["Americano MS w Brown"], ["Sugar"]

因此,正如您所看到的,该算法可能会检查是否每 n 个字符都有一个被剪切的单词(基于 n 个字符的动态检查),因此会将剪切的单词移动到下一个数组中。

所以在那种情况下,算法会巧妙地绕过每 n 个字符,如果有任何单词没有被换行,可能会更少,但不会超过 n 个字符。

我的解释清楚吗?谁能指导我吗?谢谢

最佳答案

这是该算法的一些简单实现,您可以从它开始。首先,我们按单词切割字符串,然后将它们添加到临时字符串中,直到达到字符数限制。

let itemName = "Japanese Matcha SM w RB -L Special Edition And Americano MS w Brown Sugar Limited Edition"

let table = itemName.split(separator: " ")

let limit = 26
var tempString = ""

var finalResult: [String] = []

for item in table {
tempString += item + " "

if tempString.count >= limit {
finalResult.append(tempString)
tempString = ""
}
}

print(finalResult)

关于基于自动换行的 Swift 拆分子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56254966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com