¿Swift tiene un método de recorte en String?

¿Swift tiene un método de recorte en String? Por ejemplo:

let result = " abc ".trim() // result == "abc" 

    Aquí se explica cómo eliminar todos los espacios en blanco del principio y el final de una String .

    (Ejemplo probado con 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" 

    (Ejemplo probado con Swift 3.0 )

     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" 

    Espero que esto ayude.

    Ponga este código en un archivo en su proyecto, algo le gusta Utils.swift:

     extension String { func trim() -> String { return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) } } 

    Entonces podrás hacer esto:

     let result = " abc ".trim() // result == "abc" 

    Solución Swift 3.0

     extension String { func trim() -> String { return self.trimmingCharacters(in: NSCharacterSet.whitespaces) } } 

    Entonces podrás hacer esto:

     let result = " Hello World ".trim() // result = "HelloWorld" 

    En Swift 3.0

     extension String { func trim() -> String { return self.trimmingCharacters(in: CharacterSet.whitespaces) } } 

    Y puedes llamar

     let result = " Hello World ".trim() /* result = "Hello World" */ 

    Swift 3

     let result = " abc ".trimmingCharacters(in: .whitespacesAndNewlines) 

    Swift 4

     let trimmedString = " abc ".trimmingCharacters(in: .whitespaces) //trimmedString == "abc" 

    Puede usar el método trim () en una extensión Swift String. Escribí https://bit.ly/JString .

     var string = "hello " var trimmed = string.trim() println(trimmed)// "hello" 

    Sí lo tiene, puedes hacerlo así:

     var str = " this is the answer " str = str.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) print(srt) // "this is the answer" 

    CharacterSet es realmente una herramienta realmente poderosa para crear una regla de corte con mucha más flexibilidad que un conjunto predefinido como .whitespacesAndNewlines.

    Por ejemplo:

     var str = " Hello World !" let cs = CharacterSet.init(charactersIn: " !") str = str.trimmingCharacters(in: cs) print(str) // "Hello World" 

    Truncar cadena a longitud específica

    Si ha ingresado un bloque de oración / texto y desea guardar solo la longitud especificada de su texto. Agregue la siguiente extensión a 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) } } 

    Utilizar

     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 

    En Swift3 XCode 8 Final

    ¡Observe que el CharacterSet.whitespaces ya no es una función!

    (Tampoco lo es NSCharacterSet.whitespaces )

     extension String { func trim() -> String { return self.trimmingCharacters(in: CharacterSet.whitespaces) } } 
     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()) } } 

    Tomado de este informe mío: https://github.com/goktugyil/EZSwiftExtensions/commit/609fce34a41f98733f97dfd7b4c23b5d16416206

    Otra manera similar:

     extension String { var trimmed:String { return self.trimmingCharacters(in: CharacterSet.whitespaces) } } 

    Utilizar:

     let trimmedString = "myString ".trimmed 

    Creé esta función que permite ingresar una cadena y devuelve una lista de cadenas recortadas por cualquier carácter

      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 } 

    como no se encontró una manera de hacer esto rápidamente (comstack y funciona perfectamente en swift 2.0)