Swift:替换由多个分隔符分隔的字符串中的数值
Swift: Replace numeric value in string separated by multiple delimiters
我目前使用的 api 图像 url 字符串格式如下:
https://someExampleURL/18px-ImageName.png
"px"前面的数值不一致,所以想把这个值换成静态的,以便加载相同大小的图片。
我正在考虑将字符串按字符“/”和"px"拆分,并将字符串中的数值替换为“100”。实现这一目标的最佳策略是什么?
你是在正确的轨道上,具有如此特定的 URL 格式,你可以使用 components(separatedBy:)
将 URL 字符串拆分为最后一个 /
字符和其余部分由第一次出现的 px
决定。如果您打算继续使用强制展开,请确保您的 URL 格式没有改变。
检索到图像尺寸后,您可以使用 String.replacingCharacters(in:,with:)
将尺寸更改为新值。
let newImageSize = "100"
let imageUrlString = "https://someExampleURL/18px-ImageName.png"
let imageSize = imageUrlString.components(separatedBy: "/").last!.components(separatedBy: "px").first!
let modifiedImageUrlString = imageUrlString.replacingCharacters(in: imageUrlString.range(of: imageSize)!, with: newImageSize)
结果:
你能保证URL中'/'字符的数量吗?
'https://someExampleURL/18px-ImageName.png'.split('/')
returns 列表
['https:', '', 'someExampleURL', '18px-ImageName.png']
因此,
'https://someExampleURL/18px-ImageName.png'.split('/')[3].split('px')
returns 列表
['18', '-ImageName.png']
这就是分解字符串的方法。您所要做的就是替换您想要的位并将其连接在一起。
您可以使用正则表达式:
let link = "https://someexampleurl/18px-ImageName.png"
let newLink = link.replacingOccurrences(of: "/\d+px", with: "/100px", options: .regularExpression)
我目前使用的 api 图像 url 字符串格式如下:
https://someExampleURL/18px-ImageName.png
"px"前面的数值不一致,所以想把这个值换成静态的,以便加载相同大小的图片。
我正在考虑将字符串按字符“/”和"px"拆分,并将字符串中的数值替换为“100”。实现这一目标的最佳策略是什么?
你是在正确的轨道上,具有如此特定的 URL 格式,你可以使用 components(separatedBy:)
将 URL 字符串拆分为最后一个 /
字符和其余部分由第一次出现的 px
决定。如果您打算继续使用强制展开,请确保您的 URL 格式没有改变。
检索到图像尺寸后,您可以使用 String.replacingCharacters(in:,with:)
将尺寸更改为新值。
let newImageSize = "100"
let imageUrlString = "https://someExampleURL/18px-ImageName.png"
let imageSize = imageUrlString.components(separatedBy: "/").last!.components(separatedBy: "px").first!
let modifiedImageUrlString = imageUrlString.replacingCharacters(in: imageUrlString.range(of: imageSize)!, with: newImageSize)
结果:
你能保证URL中'/'字符的数量吗?
'https://someExampleURL/18px-ImageName.png'.split('/')
returns 列表
['https:', '', 'someExampleURL', '18px-ImageName.png']
因此,
'https://someExampleURL/18px-ImageName.png'.split('/')[3].split('px')
returns 列表
['18', '-ImageName.png']
这就是分解字符串的方法。您所要做的就是替换您想要的位并将其连接在一起。
您可以使用正则表达式:
let link = "https://someexampleurl/18px-ImageName.png"
let newLink = link.replacingOccurrences(of: "/\d+px", with: "/100px", options: .regularExpression)