Swift - Удалить "из строки
У меня есть строка, которая является "Необязательной (" 5 ")". Мне нужно удалить "вокруг 5. Я удалил" Необязательный", выполнив:
text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
У меня возникают трудности с удалением символов, поскольку они обозначают конец строки в коде.
Ответы
Ответ 1
Swift использует обратную косую черту, чтобы избежать двойных кавычек. Вот список экранированных специальных символов в Swift:
-
\0
(нулевой символ) -
\\
(обратная косая черта) -
\t
(горизонтальная вкладка) -
\n
(перевод строки) -
\r
(возврат каретки) -
\"
(двойная кавычка) -
\'
(одинарная кавычка)
Это должно работать:
text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
Ответ 2
Свифт 3 и Свифт 4:
text2 = text2.textureName.replacingOccurrences(of: "\"", with: "", options: NSString.CompareOptions.literal, range:nil)
Последние документы, обновленные до Swift 3.0.1, имеют:
- Нулевой символ (
\0
) - Обратная косая черта (
\\
) - Горизонтальная вкладка (
\t
) - Перевод строки (
\n
) - Возврат каретки (
\r
) - Двойная цитата (
\"
) - Одиночная цитата (
\'
) - Скаляр Unicode (
\u{n}
), где n от одной до восьми шестнадцатеричных цифр
Если вам нужна дополнительная информация, вы можете посмотреть официальные документы здесь
Ответ 3
Вот скорый 3 обновленный ответ
var editedText = myLabel.text?.replacingOccurrences(of: "\"", with: "")
Null Character (\0)
Backslash (\\)
Horizontal Tab (\t)
Line Feed (\n)
Carriage Return (\r)
Double Quote (\")
Single Quote (\')
Unicode scalar (\u{n})
Ответ 4
Чтобы удалить необязательный, вы должны сделать это
println("\(text2!)")
причина, если вы не используете "!" он принимает необязательное значение text2
И чтобы удалить "из 5, вам нужно преобразовать его в NSInteger или NSNumber easy peasy. Он имеет" ", вызывая его строку.
Ответ 5
В конце концов я получил это, чтобы работать на игровой площадке, имея несколько символов, которые я пытаюсь удалить из строки:
var otherstring = "lat\" : 40.7127837,\n"
var new = otherstring.stringByTrimmingCharactersInSet(NSCharacterSet.init(charactersInString: "la t, \n \" ':"))
count(new) //result = 10
println(new)
//yielding what I'm after just the numeric portion 40.7127837
Ответ 6
Как говорит Мартин R, ваша строка "Необязательный (" 5 ") выглядит так, будто вы сделали что-то неправильно.
dasblinkenlight отвечает вам, так что это нормально, но для будущих читателей я постараюсь добавить альтернативный код:
if let realString = yourOriginalString {
text2 = realString
} else {
text2 = ""
}
text2 в вашем примере выглядит как String, и, возможно, он уже установлен в "", но похоже, что у вас есть тип yourOriginalString типа Optional (String) где-то, что он не был лишен или правильно используется.
Надеюсь, это поможет некоторым читателям.
Ответ 7
Если вы хотите удалить из строки больше символов, например "a", "A", "b", "B", "c", "C", вы можете сделать это следующим образом:
someString = someString.replacingOccurrences(of: "[abc]", with: "", options: [.regularExpression, .caseInsensitive])
Ответ 8
Вы создали экземпляр text2 как необязательный (например, var text2: String?).
Вот почему вы получаете Необязательный ( "5" ) в своей строке.
забрать? и замените на:
var text2: String = ""
Ответ 9
Допустим, у вас есть строка:
var string = "potatoes + carrots"
И вы хотите заменить слово "картофель" в этой строке на "помидоры"
string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)
Если вы напечатаете вашу строку, теперь это будет: "tomatoes + carrots"
Если вы хотите полностью удалить слово "картофель" из укуса, вы можете использовать:
string = string.replacingOccurrences(of: "potatoes", with: "", options: NSString.CompareOptions.literal, range: nil)
Если вы хотите использовать некоторые другие символы в вашем укусе, используйте:
- Нулевой символ (\ 0)
- Обратная косая черта (\)
- Горизонтальная вкладка (\ т)
- Перевод строки (\n)
- Возврат каретки (\ r)
- Двойная цитата (\ ")
- Одиночная цитата (\ ')
Пример:
string = string.replacingOccurrences(of: "potatoes", with: "dog\ toys", options: NSString.CompareOptions.literal, range: nil)
Вывод: "dog toys + carrots"
Ответ 10
Если вы получаете вывод Optional(5)
при попытке вывести значение 5
в необязательном Int или String, вы должны сначала развернуть значение:
if let value = text {
print(value)
}
Теперь у вас есть значение без строки "Необязательно", которую Swift добавляет, когда значение не было развернуто ранее.