Swift:替换由多个分隔符分隔的字符串中的数值

时间:2017-11-28 22:48:02

标签: swift string replace delimiter

我目前正在使用带有图片网址字符串的api,格式如下:

https://someExampleURL/18px-ImageName.png

“px”之前的数值不一致,因此我想用静态值替换此值以加载相同大小的图像。

我正在考虑按字符“/”和“px”拆分字符串,并将字符串中的数值替换为“100”。什么可能是实现这一目标的最佳策略?

3 个答案:

答案 0 :(得分:2)

您使用了这种特定的网址格式,您可以使用components(separatedBy:)将网址字符串拆分为最后一个/字符,其余部分由{{{1}出现。 1}}。如果您打算继续使用强制解包,请确保您的网址格式不会改变。

检索图像尺寸后,您可以使用px将尺寸更改为新值。

String.replacingCharacters(in:,with:)

结果:

  

https://someExampleURL/100px-ImageName.png

答案 1 :(得分:2)

您可以使用正则表达式:

let link = "https://someexampleurl/18px-ImageName.png"
let newLink = link.replacingOccurrences(of: "/\\d+px", with: "/100px", options: .regularExpression)

答案 2 :(得分:1)

你能保证' /'网址中的字符?

'https://someExampleURL/18px-ImageName.png'.split('/')

返回列表

['https:', '', 'someExampleURL', '18px-ImageName.png']

因此,

'https://someExampleURL/18px-ImageName.png'.split('/')[3].split('px')

返回列表

['18', '-ImageName.png']

那是如何打破弦乐的。您所要做的就是替换您想要的位并将其重新连接在一起。