-5

请帮助我,我使用 Xcode 8.3(swift 3.1),该功能trimmingCharacters不起作用。我的代码如下:

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if var searchStr = textField.text{
       let _searchStr = searchStr.trimmingCharacters(in: .whitespaces)
       print("After trimming:\(_searchStr)")
   }
}

文本字段中的输入409 huỳnh和打印结果409 huỳnh 不符合预期: 409huỳnh

4

6 回答 6

12

从文档中:

通过从集合中包含的接收者字符的两端删除而生成的新字符串。

它不会删除字符串中的字符。

.whitespaces您可以用正则表达式替换字符串中的空格(对应于字符集):

let _searchStr = searchStr.replacingOccurrences(of: "\\s", with: "", options: .regularExpression)
于 2017-04-03T06:41:21.467 回答
5

您可以使用 Swift 5 Character 属性isWhitespace并过滤字符串中的所有非空格:

let string = "409 huỳnh"
let result = string.filter { !$0.isWhitespace }
print(result)  // "409huỳnh"
于 2019-06-12T11:22:43.740 回答
2

trimmingCharacters仅删除前导和尾随空格。

试试这个

let _searchStr = searchStr.replacingOccurrences(" ", withString: "", options:.literal, range: nil)
于 2017-04-03T06:43:56.997 回答
0

您可以使用

let trimmedString = searchStr.stringByReplacingOccurrencesOfString(" ", withString: "")

希望这对你有帮助!

于 2017-04-03T06:42:06.270 回答
0

Swift 3中,您可以使用以下代码来解决问题

let _searchStr = searchStr.replacingOccurrences(of: " ", with: "")
于 2017-04-03T06:47:13.287 回答
0

斯威夫特 4替代品

由于 Swift 4 字符串又是序列。您可以使用过滤器来做到这一点。

let _searchStr = searchStr.filter({ " ".contains($0) == false })
于 2018-04-17T12:07:48.860 回答