Swift - Remove " character from string

IosXcodeStringSwift

Ios Problem Overview


I have a string which is "Optional("5")". I need to remove the "" surrounding the 5. I have removed the 'Optional' by doing:

text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)

I am having difficulties removing the " characters as they designate the end of a string in the code.

Ios Solutions


Solution 1 - Ios

Swift uses backslash to escape double quotes. Here is the list of escaped special characters in Swift:

>- \0 (null character) >- \\ (backslash) >- \t (horizontal tab) >- \n (line feed) >- \r (carriage return) >- \" (double quote) >- \' (single quote)

This should work:

text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)

Solution 2 - Ios

Swift 3 and Swift 4:

text2 = text2.textureName.replacingOccurrences(of: "\"", with: "", options: NSString.CompareOptions.literal, range:nil)

Latest documents updated to Swift 3.0.1 have:

> - Null Character (\0) > - Backslash (\\) > - Horizontal Tab (\t) > - Line Feed (\n) > - Carriage Return (\r) > - Double Quote (\") > - Single Quote (\') > - Unicode scalar (\u{n}), where n is between one and eight hexadecimal digits

If you need more details you can take a look to the official docs here

Solution 3 - Ios

Here is the swift 3 updated answer

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})

Solution 4 - Ios

To remove the optional you only should do this

println("\(text2!)")

cause if you dont use "!" it takes the optional value of text2

And to remove "" from 5 you have to convert it to NSInteger or NSNumber easy peasy. It has "" cause its an string.

Solution 5 - Ios

Replacing for Removing is not quite logical. String.filter allows to iterate a string char by char and keep only true assertion.

Swift 4 & 5

var aString = "Optional(\"5\")"

aString = aString.filter { $0 != "\"" }

> Optional(5)

Or to extend

var aString = "Optional(\"5\")"

let filteredChars = "\"\n\t"

aString = aString.filter { filteredChars.range(of: String($0)) == nil }

> Optional(5)

Solution 6 - Ios

I've eventually got this to work in the playground, having multiple characters I'm trying to remove from a string:

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

Solution 7 - Ios

If you want to remove more characters for example "a", "A", "b", "B", "c", "C" from string you can do it this way:

someString = someString.replacingOccurrences(of: "[abc]", with: "", options: [.regularExpression, .caseInsensitive])

Solution 8 - Ios

As Martin R says, your string "Optional("5")" looks like you did something wrong.

dasblinkenlight answers you so it is fine, but for future readers, I will try to add alternative code as:

if let realString = yourOriginalString {
    text2 = realString
} else {
    text2 = ""
}

text2 in your example looks like String and it is maybe already set to "" but it looks like you have an yourOriginalString of type Optional(String) somewhere that it wasn't cast or use correctly.

I hope this can help some reader.

Solution 9 - Ios

Let's say you have a string:

var string = "potatoes + carrots"

And you want to replace the word "potatoes" in that string with "tomatoes"

string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)

If you print your string, it will now be: "tomatoes + carrots"

If you want to remove the word potatoes from the sting altogether, you can use:

string = string.replacingOccurrences(of: "potatoes", with: "", options: NSString.CompareOptions.literal, range: nil)

If you want to use some other characters in your sting, use:

> - Null Character (\0) > - Backslash (\) > - Horizontal Tab (\t) > - Line Feed (\n) > - Carriage Return (\r) > - Double Quote (") > - Single Quote (')

Example:

string = string.replacingOccurrences(of: "potatoes", with: "dog\'s toys", options: NSString.CompareOptions.literal, range: nil)

Output: "dog's toys + carrots"

Solution 10 - Ios

If you are getting the output Optional(5) when trying to print the value of 5 in an optional Int or String, you should unwrap the value first:

if value != nil
{ print(value)
}

or you can use this:

if let value = text {
    print(value)
}

or in simple just 1 line answer:

print(value ?? "")

The last line will check if variable 'value' has any value assigned to it, if not it will print empty string

Solution 11 - Ios

You've instantiated text2 as an Optional (e.g. var text2: String?). This is why you receive Optional("5") in your string. take away the ? and replace with:

var text2: String = ""

Solution 12 - Ios

If you are getting the output Optional(5) when trying to print the value of 5 in an optional Int or String, you should unwrap the value first:

if let value = text {
    print(value)
}

Now you've got the value without the "Optional" string that Swift adds when the value is not unwrapped before.

Solution 13 - Ios

Swift 5 (working)

For removing single / multiple characters. Only 1 line code.

trimmingCharacters(in: CharacterSet)

In action:

var yourString:String = "(\"This Is: Your String\")"
yourString = yourString.trimmingCharacters(in: ["("," ",":","\"",")"])
print(yourString)

Output:

ThisIsYourString

You are entering a Set that contains characters you're required to trim.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCalan WilliamsView Question on Stackoverflow
Solution 1 - IosSergey KalinichenkoView Answer on Stackoverflow
Solution 2 - IosAlessandro OrnanoView Answer on Stackoverflow
Solution 3 - IosChathuranga SilvaView Answer on Stackoverflow
Solution 4 - IosNorolimView Answer on Stackoverflow
Solution 5 - IosLuc-OlivierView Answer on Stackoverflow
Solution 6 - IosGetafixView Answer on Stackoverflow
Solution 7 - IosGrzegorz R. KuleszaView Answer on Stackoverflow
Solution 8 - IosDamView Answer on Stackoverflow
Solution 9 - IosMini OfficialView Answer on Stackoverflow
Solution 10 - IosdeepOceanView Answer on Stackoverflow
Solution 11 - IosRyan de KwaadstenietView Answer on Stackoverflow
Solution 12 - IosAle MohamadView Answer on Stackoverflow
Solution 13 - IosSoorej BabuView Answer on Stackoverflow