如何在Swift中从字符串中移除引号?

18
我正在尝试从 Swift 的 `String` 中去除引号,类似于:
```html

"Hello"

```
这样 Swift 的 `String` 就变成了:
```html

Hello

```

6
你能否百分之百确定该字符串实际上包含引号?也许这只是调试器或Playground显示字符串的方式? - Martin R
@MartinR,有趣的是意识到调试器中显示的引号实际上是包含引号的字符串变量,必须将其删除才能使我的网络 API 调用正常工作。一旦删除,调试器就不再在打印的变量中显示引号了。 - electroid
6个回答

29

您可以简单地使用

Swift 1

var str: String = "\"Hello\""

print(str) // "Hello"

print(str.stringByReplacingOccurrencesOfString("\"", withString: "")) // Hello

Swift 3 & 4更新

print(str.replacingOccurrences(of: "\"", with: "")) // Hello

14
"\"Hello\"".stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: "\""))

2
这将仅删除边缘处的引号,并保留中间的引号。根据操作者的意图,这可能是完全正确的。 - ctietze

3

在Swift 3中:

let myString = "\"Hello\""
print(myString)  // "Hello"

let myNewString = myString.replacingOccurrences(of: "\"", with: "")
print(myNewString) // Hello

2
str.stringByReplacingOccurrencesOfString("\"", withString: "")

1

//尝试像这样

var strString = "\"Hello\""

strString = strString.stringByReplacingOccurrencesOfString("\"", withString: "")

现在不起作用,而且结果字符串中也有引号。 - Ansal Antony

0

您可以使用反斜杠\来从字符串中删除引号

\"(双引号)

\'(单引号)

例如:

NSString *s = @"your String";
NSCharacterSet *newStr = [NSCharacterSet characterSetWithCharactersInString:@"/""];
s = [[s componentsSeparatedByCharactersInSet: newStr] componentsJoinedByString: @""];
NSLog(@"%@", s); 

let myString = "Hello" let resulttext = myString.stringByReplacingOccurrencesOfString(""", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)现在无法工作,我仍然在结果字符串中得到引号。 - Ansal Antony
尝试:println("(你好!)") - user5938635
有没有其他方法可以从字符串中删除引号? - Ansal Antony
4
你知道控制台打印引号是为了“装饰”,让你知道这是一个字符串吗?此外,let string = "Hello"创建的字符串中只有Hello,因为该语句中的引号只是告诉编译器——“这是一个字符串”。 - Losiowaty
现在它正在工作,打印(resultText)。非常感谢。 - Ansal Antony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接