:スウィフト:複数の区切り文字で区切られた文字列内の数値を置き換え
右の「PX」の前に数値が矛盾しているhttps://someExampleURL/18px-ImageName.png
、したがって、私がしたいです同じサイズのイメージをロードするには、この値を静的な値に置き換えます。
私は、文字列 "/"と "px"で文字列を分割し、文字列内の数値を "100"に置き換えることを考えていました。これを達成するための最良の戦略は何でしょうか?
:スウィフト:複数の区切り文字で区切られた文字列内の数値を置き換え
右の「PX」の前に数値が矛盾しているhttps://someExampleURL/18px-ImageName.png
、したがって、私がしたいです同じサイズのイメージをロードするには、この値を静的な値に置き換えます。
私は、文字列 "/"と "px"で文字列を分割し、文字列内の数値を "100"に置き換えることを考えていました。これを達成するための最良の戦略は何でしょうか?
あなたは正規表現を使用することができます。
let link = "https://someexampleurl/18px-ImageName.png"
let newLink = link.replacingOccurrences(of: "/\\d+px", with: "/100px", options: .regularExpression)
完璧なソリューション、ありがとう! –
このような特定の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('/')
がリストに
['https:', '', 'someExampleURL', '18px-ImageName.png']
を返します。その結果、
'https://someExampleURL/18px-ImageName.png'.split('/')[3].split('px')
は、文字列を分割する方法ですリスト
['18', '-ImageName.png']
を返します。あなたがしなければならないのは、あなたが望むビットを置き換えて、それを一緒につなぎ合わせることだけです。
URLは実際には動作しませんので、@Xcoderは、リンクとしてURLを含めるように質問や私の答えを編集しようとしないでください、それが形成要求されたフォーマットを示すQ&Aの両方の重要な部分です。 –