Преобразуйте строку в URL, удалив "\" - PullRequest
0 голосов
/ 30 января 2019

Я хочу удалить \" с начала и конца конкретной строки, чтобы получить фактический URL

Код: let = subString = originalString.replacingOccurrences(of: "\", with: "")

"\" https://api.example.com/deep-link?url=some_url_encoded_string\""

То, что я хочу:

"https://api.example.com/deep-link?url=some_url_encoded_string"

Ответы [ 5 ]

0 голосов
/ 30 января 2019

Проверьте ниже код

let originalString = "\"https://api.example.com/deep-link?url=some_url_encoded_string\""

var temp = "\("\"")" as? String

if originalString.hasPrefix(temp!){
    originalString.replacingOccurrences(of: "\"", with: "")
}
0 голосов
/ 30 января 2019

Вы можете обрезать строку, чтобы удалить все начальные и конечные символы кавычек:

let url = "\"https://some-server/some/path\""
let processedString = str.trimmingCharacters(in: .init(charactersIn: "\""))
print(processedString) // https://some-server/some/path

Обратите внимание, что \" не строка из двух символов, а escape-последовательность для кавычкисимвол.

0 голосов
/ 30 января 2019

Вы должны удалить символ ".

вот так.

let myString = "\"https://api.example.com/deep-link?url=some_url_encoded_string\"" 

let newString = myString.replacingOccurrences(of: "\", with: "").replacingOccurrences(of: """, with: "")

print(newString)

0 голосов
/ 30 января 2019

Эта обратная косая черта здесь только потому, что вам нужны двойные кавычки в строке, которые иначе были бы невозможны в строке, объявленной в одной строке в Swift 4.2 или более ранней версии.


В Swift 5 вы можете использовать rawстроковые литералы

let originalString = #""https...""#

Таким образом, вам действительно нужно удалить только те символы, которые на самом деле находятся в строке, и это двойные кавычки (упрощенно: \" = ").

Для этого вам нужно снова использовать обратную косую черту перед двойной кавычкой "\" -> "\""

let subString = originalString.replacingOccurrences(of: "\"", with: "")
0 голосов
/ 30 января 2019

Если вы хотите удалить \", где бы он ни находился в строке, используйте это:

let subString = originalString.replacingOccurrences(of: "\"", with: "")

, если вы хотите удалить его только в начале и конце строки, тогда вы будетепроверка:

if originalString.first == "\"" {
    _ = originalString.removeFirst()
}
if originalString.last == "\"" {
    _ = originalString.popLast() 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...