:스위프트 : 여러 구분 기호로 구분 된 문자열에서 숫자 값을 교체
바로 "픽셀"전에 숫자 값이 일치하지 않는https://someExampleURL/18px-ImageName.png
따라서 내가 원하는 같은 크기의 이미지를로드하려면이 값을 정적 값으로 대체하십시오.
문자열을 "/"및 "px"로 나누고 문자열의 숫자 값을 "100"으로 바꾸려고했습니다. 이것을 달성하는 가장 좋은 전략은 무엇일까요?
:스위프트 : 여러 구분 기호로 구분 된 문자열에서 숫자 값을 교체
바로 "픽셀"전에 숫자 값이 일치하지 않는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의 중요한 부분으로 요청 된 형식을 보여줍니다. –