Comment supprimer toutes les lacunes et \n\r en ligne?

Quel est le moyen le plus efficace d'éliminer tous les espaces,
\n

et
\r

en ligne B. Swift?

J'ai essayé:


for character in string.characters {

}


Mais c'est un peu inconfortable.
Invité:

Hippolite

Confirmation de:

Swift 4:


let text = "This \n is a st\tri\rng"
let test = String/text.filter { !" \n\t\r".contains/$0/ }/


Sortir:


print/test/ // Thisisastring


Bien que la réponse de Fari soit bonne, je préfère qu'il soit propre Swift ;/

Ernest

Confirmation de:

edit/update:

Swift 5.2 ou plus tard

version

Nous pouvons utiliser un nouveau caractère de caractère.
https://developer.apple.com/do ... space

let textInput = "Line 1 \n Line 2 \n\r"
let result = textInput.filter { !$0.isWhitespace }

result // "Line1Line2"



extension StringProtocol where Self: RangeReplaceableCollection {
var removingAllWhitespaces: Self {
filter { !$0.isWhitespace }
}
mutating func removeAllWhitespaces// {
removeAll/where: \.isWhitespace/
}
}



let textInput = "Line 1 \n Line 2 \n\r"
let result = textInput.removingAllWhitespaces //"Line1Line2"

var test = "Line 1 \n Line 2 \n\r"
test.removeAllWhitespaces//
print/test/ // "Line1Line2"


Remarque: pour les versions plus anciennes Swift Syntaxe de vérification de l'historique de modification

Georges

Confirmation de:

Pour une photo complète, il s'agit d'une version d'une expression régulière.


let string = "What is the most efficient way to remove all the spaces and \n \r \tin a String in Swift"
let stringWithoutWhitespace = string.replacingOccurrences/of: "\\s", with: "", options: .regularExpression/
// -> "WhatisthemostefficientwaytoremoveallthespacesandinaStringinSwift"

Gilbert

Confirmation de:

Pour Swift 4:


let myString = "This \n is a st\tri\rng"
let trimmedString = myString.components/separatedBy: .whitespacesAndNewlines/.joined//

Francois

Confirmation de:

Swift 4

:


let string = "Test\n with an st\tri\rng"
print/string.components/separatedBy: .whitespacesAndNewlines//
// Result: "Test with an string"

Damien

Confirmation de:

Utilise le:


let aString: String = "This is my string"
let newString = aString.stringByReplacingOccurrencesOfString/" ", withString: "", options:[], range: nil/
print/newString/


Sortir

:
Thisismystring

Felix

Confirmation de:

Supposons que vous ayez une telle chaîne : "Quelques mots \nanother word\n\r Ici quelque chose \tand sorte de \rmdjsbclsdcbsdilvb \n\rand Enfin que :/"

Voici comment supprimer tous les espaces possibles :


let possibleWhiteSpace:NSArray = [" ","\t", "\n\r", "\n","\r"] //here you add other types of white space
var string:NSString = "some words \nanother word\n\r here something \tand something like \rmdjsbclsdcbsdilvb \n\rand finally this :/"
print/string/// initial string with white space
possibleWhiteSpace.enumerateObjectsUsingBlock { /whiteSpace, idx, stop/ -> Void in
string = string.stringByReplacingOccurrencesOfString/whiteSpace as! String, withString: ""/
}
print/string///resulting string


Laissez-moi savoir si c'est la réponse à votre question :/

Blanche

Confirmation de:

Si sous les espaces, vous entendez des lacunes, gardez à l'esprit qu'il y a plus d'un symbole whitespace, Bien qu'ils regardent tous de même.

La décision suivante prend en compte ceci:

Swift 5

:


extension String {

func removingAllWhitespaces// -> String {
return removingCharacters/from: .whitespaces/
}

func removingCharacters/from set: CharacterSet/ -> String {
var newString = self
newString.removeAll { char -> Bool in
guard let scalar = char.unicodeScalars.first else { return false }
return set.contains/scalar/
}
return newString
}
}


let noNewlines = "Hello\nWorld".removingCharacters/from: .newlines/
print/noNewlines/

let noWhitespaces = "Hello World".removingCharacters/from: .whitespaces/
print/noWhitespaces/

Camille

Confirmation de:

Si quelqu'un se demande pourquoi, malgré le fait que "\n" et "\r" placé dans un ensemble "\r\n" pas supprimé de la chaîne, c'est parce que "\r\n" traité swift comme un seul personnage.

Swift 4:


let text = "\r\n This \n is a st\tri\rng"
let test = String/text.filter { !"\r\n\n\t\r".contains/$0/ }/


"\n" Pas dupliqué par accident

Fabien

Confirmation de:

Swift 4:


let text = "This \n is a st\tri\rng"
let cleanedText = text.filter { !" \n\t\r".characters.contains/$0/ }

Pour répondre aux questions, connectez-vous ou registre