Ios 如何截断字符串中的字符?

Ios 如何截断字符串中的字符?,ios,swift,Ios,Swift,这里我只需要截断https中的s字母,有人能帮我从下面的字符串中截断吗 https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg 借助swift2以后提供的方法,很容易替换字符串中的文本 let originalStr = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg" let finalStr = originalS

这里我只需要截断
https
中的
s
字母,有人能帮我从下面的字符串中截断吗

https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg

借助swift2以后提供的方法,很容易替换字符串中的文本

let originalStr = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"
let finalStr = originalStr.replacingOccurrences(of: "https", with: "http")
 print(finalStr)
选项2

let str = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"

    if str.utf16.count >= 5{
        let a = str.index(str.startIndex, offsetBy: 5)
        let result =  String(str[..<a])
        let replaced = str.replacingOccurrences(of: result, with: "http")
        print(replaced)

    }else{
        //lenght in shorter
    }

借助swift2以后提供的方法,很容易替换字符串中的文本

let originalStr = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"
let finalStr = originalStr.replacingOccurrences(of: "https", with: "http")
 print(finalStr)
选项2

let str = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"

    if str.utf16.count >= 5{
        let a = str.index(str.startIndex, offsetBy: 5)
        let result =  String(str[..<a])
        let replaced = str.replacingOccurrences(of: result, with: "http")
        print(replaced)

    }else{
        //lenght in shorter
    }

您实际想要的是在URL字符串中将方案从“https”更改为“http”。可以使用
URLComponents
类型安全地操作URL:

var urlString = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"

if var urlComponents = URLComponents(string: urlString), urlComponents.scheme == "https" {
    urlComponents.scheme = "http"
    urlString = urlComponents.string!
}

print(urlString)
// http://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg
如果您打算创建一个URL请求,那么您不需要 已修改的字符串,但只有更改方案的
URL(请求)

let urlString = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"

guard var urlComponents = URLComponents(string: urlString) else {
    // ... invalid URL string, bail out ...
}
if urlComponents.scheme == "https" {
    urlComponents.scheme = "http"
}
guard let url = urlComponents.url else {
    // ... invalid URL, bail out ...
}

let request = URLRequest(url: url)
// ...

您实际想要的是在URL字符串中将方案从“https”更改为“http”。可以使用
URLComponents
类型安全地操作URL:

var urlString = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"

if var urlComponents = URLComponents(string: urlString), urlComponents.scheme == "https" {
    urlComponents.scheme = "http"
    urlString = urlComponents.string!
}

print(urlString)
// http://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg
如果您打算创建一个URL请求,那么您不需要 已修改的字符串,但只有更改方案的
URL(请求)

let urlString = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"

guard var urlComponents = URLComponents(string: urlString) else {
    // ... invalid URL string, bail out ...
}
if urlComponents.scheme == "https" {
    urlComponents.scheme = "http"
}
guard let url = urlComponents.url else {
    // ... invalid URL, bail out ...
}

let request = URLRequest(url: url)
// ...

请尝试以下代码段:

let tmpStr = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"
      let modifiedStr  = tmpStr.replace("https", withString:"http")
    extension String
    {
        func replace(target: String, withString: String) -> String
        {
            return self.replacingOccurrences(of: target, with: withString, options: NSString.CompareOptions.literal, range: nil)
        }
    }

请尝试以下代码段:

let tmpStr = "https://192.168.1.11/magento2/pub/media/ewl_bannerslider/slides/5.jpg"
      let modifiedStr  = tmpStr.replace("https", withString:"http")
    extension String
    {
        func replace(target: String, withString: String) -> String
        {
            return self.replacingOccurrences(of: target, with: withString, options: NSString.CompareOptions.literal, range: nil)
        }
    }

请注意,如果字符串中碰巧有另一个
https
实例,那么它也将被更改,而不仅仅是一开始的实例。我可以知道下一票的原因吗?答案有多种方式,如果我犯了错误,最好更新我的下一票,但请注意,您的两个解决方案都将替换所有出现的“https”在字符串中由“http”组成,不只是初始方案部分。例如,
”https://192.168.1.11/https/5.jpg“
变为
”http://192.168.1.11/http/5.jpg“
,这可能不是有意的。请注意,如果字符串中碰巧有另一个
https
实例,它也将被更改,而不仅仅是一开始的实例。我可以知道否决的原因吗,答案有多种方式,如果我犯了错误,最好更新我的下一票,但请注意,您的两种解决方案都会将字符串中出现的所有“https”替换为“http”,而不仅仅是初始方案部分。例如,
”https://192.168.1.11/https/5.jpg“
变为
”http://192.168.1.11/http/5.jpg“
,这可能不是故意的。不要把
URL
s看作
String
s。你认为汽车的水平螺母和螺栓?当您处于错误的抽象级别时,简单的操作(将url的方案从
http
更改为
https
)会变得更加困难(请考虑
String
,而不是
url
)。你认为汽车的水平螺母和螺栓?当您处于错误的抽象级别时,简单的操作(将url的方案从
http
更改为
https
)会变得更加困难(请考虑
String
,而不是
url
)。