在“Swift 3”中的字符串中查找换行符

Posted

技术标签:

【中文标题】在“Swift 3”中的字符串中查找换行符【英文标题】:Finding new line character in a String in "Swift 3" 【发布时间】:2017-06-09 05:48:30 【问题描述】:

在我的应用程序中,我正在接收来自网络服务的一些传入数据。在该数据中,也可能会收到一些错误的值,例如换行符。我想在响应字符串中查找它是否包含换行符。

在 Swift 3 之前我可以这样做

string.rangeOfString("\n")) == nil)

但在 Swift 3 中,此方法不再可用。但是substring 方法是可用的,它在Range 的帮助下完成。

我想检测我的字符串是否包含 "\n"Swift 3 中使用此方法将如何实现。

【问题讨论】:

extension String var lines: [String] var result: [String] = [] enumerateLines line, _ in result.append(line) return result let text = "line1\nline2" let array = text.components(separatedBy: CharacterSet.newlines) 用这个东西。 请检查这个答案***.com/questions/39677330/… @HimanshuMoradiya 当收到错误值时,我收到了一个新的行字符作为整体响应。所以,我只想检测它是否是新行。 然后 text.components(separatedBy: CharacterSet.newlines) 在这你明白了。如果您只想检查新行是否可用,那么请检查 array.count > 0 这意味着新行或部分没有新行 【参考方案1】:

如果您只想知道它是否存在而不关心它在哪里,string.contains("\n") 将在它存在时返回 true,如果不存在则返回 false。

【讨论】:

你是对的。它的内置方法非常简单优雅【参考方案2】:

Swift 5+ 的简短回答

你可以使用

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

【讨论】:

【参考方案3】:

你也可以使用

yourString.rangeOfCharacter(from: CharacterSet.newlines) != nil

更优雅,因为它不使用硬编码的换行符字符串

【讨论】:

【参考方案4】:

斯威夫特 3

string.range(of: "\n")

检查:

if string.range(of: "\n") == nil


或者如果你只是想检查string是否包含\n,那么,

if !str.characters.contains("\n") 


【讨论】:

【参考方案5】:

.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

【讨论】:

【参考方案6】:
let string:String = "This is a string"
if string.range(of: "\n") == nil 
    print  ("contains nil")

else 
    print("contains new line")

在 swift 3 中完美工作。

【讨论】:

以上是关于在“Swift 3”中的字符串中查找换行符的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 表的文本字符串中查找换行符?

excel 批量替换换行符

请问notepad++如何将换行替换成其它符号?

Notepad++中查找替换“换行符”

将文本文件中的 字符串变成换行符

寻找正则表达式以在大字符串中查找带引号的换行符(对于 C#)