2016-07-15 91 views
2

双引号字符我想找到双引号字符用下面的代码迅速字符串类型:测试字符串斯威夫特

for char in string { 
    if char == "\"" { 
     debugPrint("I have found a double quote") 
    } 
} 

if语句从未捕捉字符串中的双引号。

我正在使用Xcode 7.3.1

任何建议的意见?

回答

1

我不认为代码应该编译? (假设string确实是一个字符串。)

试试这个。似乎为我(同一版本的Xcode)工作:

for char in string.characters { 
    if char == "\"" { 
     print("I have found a double quote") 
    } 
} 
+0

通过它仍然发展顺利。我通过将我正在测试的运算符放入运算符数组中来解决运算符问题。疏忽。看起来我唯一遇到麻烦的角色是双引号字符。 – doodle

+0

@doodle我自己测试了这段代码,它对我很有用。如果你分享你正在运行的确切代码,我可以试试。 – smarx

+0

另外,我完全不知道这句话是在说什么:“我通过将我正在测试的操作员放置在操作员阵列中来解决操作员问题。” – smarx

3

取决于你想要做什么:

let str = "Hello \"World\"" 

// If you simply want to know if the string has a double quote 
if str.containsString("\"") { 
    print("String contains a double quote") 
} 

// If you want to know index of the first double quote 
if let range = str.rangeOfString("\"") { 
    print("Found double quote at", range.startIndex) 
} 

// If you want to know the indexes of all double quotes 
let indexes = str.characters.enumerate() 
       .filter { $1 == "\"" } 
       .map { $0.0 } 
print(indexes) 
+0

如果我正在搜索双引号,则所有示例都失败。如果我搜索一个'a',他们都能成功找到字符串。我想知道我是否在Swift中发现了一个错误? – doodle

+0

我其实正在尝试迭代字符串中的字符来查找用双引号括起来的文本,以便我可以提取它。 – doodle

+0

如果我在为测试而设计的单独应用程序中尝试您的示例,它可以正常工作。 HMMMMMM! – doodle