Câu trả lời:
Đây là cách bạn loại bỏ tất cả các khoảng trắng từ đầu và cuối của a String
.
(Ví dụ được thử nghiệm với Swift 2.0 .)
let myString = " \t\t Let's trim all the whitespace \n \t \n "
let trimmedString = myString.stringByTrimmingCharactersInSet(
NSCharacterSet.whitespaceAndNewlineCharacterSet()
)
// Returns "Let's trim all the whitespace"
(Ví dụ được thử nghiệm với Swift 3+ .)
let myString = " \t\t Let's trim all the whitespace \n \t \n "
let trimmedString = myString.trimmingCharacters(in: .whitespacesAndNewlines)
// Returns "Let's trim all the whitespace"
Hi vọng điêu nay co ich.
Đặt mã này vào một tệp trong dự án của bạn, một cái gì đó thích Utils.swift:
extension String
{
func trim() -> String
{
return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
}
}
Vì vậy, bạn sẽ có thể làm điều này:
let result = " abc ".trim()
// result == "abc"
Giải pháp Swift 3.0
extension String
{
func trim() -> String
{
return self.trimmingCharacters(in: NSCharacterSet.whitespaces)
}
}
Vì vậy, bạn sẽ có thể làm điều này:
let result = " Hello World ".trim()
// result = "HelloWorld"
String
?
return self.trimmingCharacters(in: .whitespacesAndNewlines)
Trong Swift 3.0
extension String
{
func trim() -> String
{
return self.trimmingCharacters(in: CharacterSet.whitespaces)
}
}
Và bạn có thể gọi
let result = " Hello World ".trim() /* result = "Hello World" */
let result = " abc ".trimmingCharacters(in: .whitespacesAndNewlines)
Có nó, bạn có thể làm như thế này:
var str = " this is the answer "
str = str.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
print(srt) // "this is the answer"
Character set thực sự là một công cụ thực sự mạnh mẽ để tạo ra một quy tắc cắt tỉa linh hoạt hơn nhiều so với một bộ được xác định trước như .whitespacesAndNewlines có.
Ví dụ:
var str = " Hello World !"
let cs = CharacterSet.init(charactersIn: " !")
str = str.trimmingCharacters(in: cs)
print(str) // "Hello World"
Chuỗi cắt ngắn theo chiều dài cụ thể
Nếu bạn đã nhập khối câu / văn bản và bạn chỉ muốn lưu chiều dài được chỉ định ra khỏi văn bản. Thêm phần mở rộng sau vào Class
extension String {
func trunc(_ length: Int) -> String {
if self.characters.count > length {
return self.substring(to: self.characters.index(self.startIndex, offsetBy: length))
} else {
return self
}
}
func trim() -> String{
return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
}
}
Sử dụng
var str = "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
//str is length 74
print(str)
//O/P: Lorem Ipsum is simply dummy text of the printing and typesetting industry.
str = str.trunc(40)
print(str)
//O/P: Lorem Ipsum is simply dummy text of the
Bạn có thể sử dụng phương thức trim () trong tiện ích mở rộng Chuỗi Swift tôi đã viết https://bit.ly/JString .
var string = "hello "
var trimmed = string.trim()
println(trimmed)// "hello"
Một cách tương tự khác:
extension String {
var trimmed:String {
return self.trimmingCharacters(in: CharacterSet.whitespaces)
}
}
Sử dụng:
let trimmedString = "myString ".trimmed
extension String {
/// EZSE: Trims white space and new line characters
public mutating func trim() {
self = self.trimmed()
}
/// EZSE: Trims white space and new line characters, returns a new string
public func trimmed() -> String {
return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
}
}
Lấy từ repo này của tôi: https://github.com/goktugyil/EZSwiftExtensions/commit/609fce34a41f98733f97dfd7b4c23b5d16416206
Trong Chung kết Swift3 XCode 8
Lưu ý rằng đó CharacterSet.whitespaces
không phải là một chức năng nữa!
(Cũng không là NSCharacterSet.whitespaces
)
extension String {
func trim() -> String {
return self.trimmingCharacters(in: CharacterSet.whitespaces)
}
}
// Swift 4.0 Xóa khoảng trắng và dòng mới
extension String {
func trim() -> String {
return self.trimmingCharacters(in: .whitespacesAndNewlines)
}
}
Bạn cũng có thể gửi các ký tự mà bạn muốn được truy tìm
extension String {
func trim() -> String {
return self.trimmingCharacters(in: .whitespacesAndNewlines)
}
func trim(characterSet:CharacterSet) -> String {
return self.trimmingCharacters(in: characterSet)
}
}
validationMessage = validationMessage.trim(characterSet: CharacterSet(charactersIn: ","))
Tôi đã tạo hàm này cho phép nhập một chuỗi và trả về một danh sách các chuỗi được cắt bởi bất kỳ ký tự nào
func Trim(input:String, character:Character)-> [String]
{
var collection:[String] = [String]()
var index = 0
var copy = input
let iterable = input
var trim = input.startIndex.advancedBy(index)
for i in iterable.characters
{
if (i == character)
{
trim = input.startIndex.advancedBy(index)
// apennding to the list
collection.append(copy.substringToIndex(trim))
//cut the input
index += 1
trim = input.startIndex.advancedBy(index)
copy = copy.substringFromIndex(trim)
index = 0
}
else
{
index += 1
}
}
collection.append(copy)
return collection
}
như đã không tìm thấy một cách để làm điều này trong swift (biên dịch và hoạt động hoàn hảo trong swift 2.0)
Đừng quên import Foundation
hoặc UIKit
.
import Foundation
let trimmedString = " aaa "".trimmingCharacters(in: .whitespaces)
print(trimmedString)
Kết quả:
"aaa"
Nếu không, bạn sẽ nhận được:
error: value of type 'String' has no member 'trimmingCharacters'
return self.trimmingCharacters(in: .whitespaces)