如何迫使Swift识别撇号?

时间:2020-03-28 11:03:55

标签: swift string string-formatting swift-string

我正在尝试用另一个字符替换字符串中的所有撇号(')字符。 我正在运行以下代码:

someString.replacingOccurrences(of: apost, with: "a")

我试图让 post 等于:

apost = "\'"
apost = #"'"#
apost = "'"

他们都没有从someString中删除撇号。

请让我知道是否有办法让Swift代替撇号。 谢谢。

3 个答案:

答案 0 :(得分:2)

someString.replacingOccurrences(...)返回替换了撇号的新字符串对象。原来的someString不会因此改变。您需要

someString = someString.replacingOccurences(...)。

如果发生了这种情况,请在Xcode中打开更多警告(或查看警告)。在我的设置中,由于未使用返回值,因此不会进行编译。

答案 1 :(得分:1)

解决了。 Gnasher是正确的,我使用的输入撇号与输入字符串中使用的撇号不同。谁知道该死的撇号有多种类型。

答案 2 :(得分:0)

我遇到了同样的问题,无法识别撇号或单引号。要查找和替换它们,请对每个字符使用 unicode。 这对我有用。

let str = "mark's new name is 'mike'"
var modstr = str.replacingOccurences(of: "\u{0027"}, with "") // 
apostrophe
modstr = modstr.replacingOccurences(of: "\u{2018"}, with "") 
// left single quote
modstr = modstr.replacingOccurences(of: "\u{2019"}, with "") 
// right single quote
print(modstr)
// modstr = marks new name is mike