在我的应用中,我收到了一些来自网络服务的传入数据。在该数据中,也可以像新行字符一样接收一些错误的值。我想在响应字符串中找到它是否包含新的行字符。
在Swift 3之前我能够像这样做
string.rangeOfString("\n")) == nil)
但是在 Swift 3 中,此方法已不再可用。但是substring
方法可以在Range
的帮助下完成。
我想检测我的字符串是否包含"\n"
如何在 Swift 3 中使用此方法完成此操作。
答案 0 :(得分:2)
您可以使用
string.contains { $0.isNewline }
检测字符串是否包含任何换行符。
Swift 5在Character
上引入了几个新属性。这些简化了这样的测试,并且比对\n
的简单检查更健壮。
现在您可以使用
myCharacter.isNewline
有关完整列表,请检查Inspecting a Character section in Character
docs
示例:
Character("\n").isNewline // true
Character("\r").isNewline // true
Character("a").isNewline // false
答案 1 :(得分:1)
Swift 3
LocalDate
检查:
OffsetDate
或者,如果您只是想查看string.range(of: "\n")
包含if string.range(of: "\n") == nil{
}
,那么,
string
答案 2 :(得分:1)
如果你只是想知道它是否在那里并且不关心它在哪里,string.contains("\n")
如果存在则返回true,否则返回false。
答案 3 :(得分:1)
您也可以使用
yourString.rangeOfCharacter(from: CharacterSet.newlines) != nil
由于它不使用经过编码的换行符字符串,因此更加优雅
答案 4 :(得分:0)
.characters.contains()
应该这样做:
let s1 = "Hi I'm a string\n with a new line"
s1.characters.contains("\n") // => true
let s2 = "I'm not"
s2.characters.contains("\n") // => false
答案 5 :(得分:0)
let string:String = "This is a string"
if string.range(of: "\n") == nil {
print ("contains nil")
}
else {
print("contains new line")
}
在swift 3中工作。