Comment puis-je supprimer le dernier caractère de la variable String à l'aide de Swift? Impossible de le trouver dans la documentation.
Voici un exemple complet:
var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)
Réponses:
Swift 4.0 (également Swift 5.0)
Swift 3.0
Les API sont devenues un peu plus rapides et, par conséquent, l'extension Foundation a un peu changé:
Ou la version sur place:
Merci Zmey, Rob Allen!
Swift 2.0+ Way
Il existe plusieurs façons d'y parvenir:
Via l'extension Foundation, bien que ne faisant pas partie de la bibliothèque Swift:
En utilisant la
removeRange()
méthode (qui modifie laname
):En utilisant le
dropLast()
fonction:Old String.Index (Xcode 6 Beta 4 +) Way
Étant donné que les
String
types dans Swift visent à fournir une excellente prise en charge UTF-8, vous ne pouvez plus accéder aux index / plages / sous-chaînes de caractères à l'aide deInt
types. Au lieu de cela, vous utilisezString.Index
:Alternativement (pour un exemple plus pratique, mais moins pédagogique), vous pouvez utiliser
endIndex
:Remarque: j'ai trouvé cela un excellent point de départ pour comprendre
String.Index
Ancienne (pré-bêta 4)
Vous pouvez simplement utiliser la
substringToIndex()
fonction, en lui fournissant un de moins que la longueur deString
:la source
substringToIndex
substringToIndex
ne l' est passubstringFromIndex
. Cela ne vous fait pas vous sentir intelligent en vous trompant, laissez-moi vous dire.substringToIndex
. De plus, depuis Xcode 7, la chaîne n'a plus de.count
propriété, elle n'est désormais appliquée qu'aux caractères:string.characters.count
var truncated = name.substring(to: name.index(before: name.endIndex))
La
dropLast()
fonction globale fonctionne sur les séquences et donc sur les chaînes:la source
characters
propriété sur une chaîne génère une séquence, vous devez donc maintenant utiliser:expression = expression.characters.dropLast()
expression = String(expression.characters.dropLast())
si vous le souhaitez en tant que chaîneSwift 4:
Dans Swift 2, procédez comme suit:
Je recommande ce lien pour comprendre les chaînes Swift.
la source
Swift 4/5
la source
Il s'agit d'un formulaire d'extension de chaîne :
pour les versions de Swift antérieures à 1.2:
Usage:
Référence:
Voir DOCS
la source
Utilisez la fonction
removeAtIndex(i: String.Index) -> Character
:la source
La façon la plus simple de couper le dernier caractère de la chaîne est:
la source
Swift 4
ou
ou
la source
la source
la source
Une catégorie rapide qui mute:
Utilisation:
la source
Réponse courte (valable à partir du 16/04/2015):
removeAtIndex(myString.endIndex.predecessor())
Exemple:
Meta:
Le langage poursuit son évolution rapide, ce qui rend la demi-vie de nombreuses réponses SO autrefois bonnes dangereusement brèves. Il est toujours préférable d'apprendre la langue et de se référer à une vraie documentation .
la source
Avec la nouvelle utilisation du type de sous-chaîne:
Swift 4:
Manière plus courte:
la source
Utilisez la fonction
advance(startIndex, endIndex)
:la source
Une autre façon Si vous souhaitez supprimer un ou plusieurs caractères de la fin.
Où XX est le nombre de caractères que vous souhaitez supprimer.
la source
Swift 3 (selon les documents ) 20 novembre 2016
la source
Je recommanderais d'utiliser NSString pour les chaînes que vous souhaitez manipuler. En fait, j'y pense en tant que développeur que je n'ai jamais rencontré de problème avec NSString que Swift String pourrait résoudre ... Je comprends les subtilités. Mais je n'ai pas encore vraiment besoin d'eux.
ou
ou
Et puis le monde entier des opérations de chaîne NSString simples vous est ouvert.
Comme réponse à la question
la source
La
dropLast()
fonction supprime le dernier élément de la chaîne.la source
Swift 3 : Lorsque vous souhaitez supprimer la chaîne de fin:
la source
Swift 4.2
Je supprime également mon dernier caractère de la chaîne (c'est-à- dire le texte UILabel ) dans l'application IOS
la source
la source
complémentaire au code ci-dessus, je voulais supprimer le début de la chaîne et je n'ai trouvé aucune référence nulle part. Voici comment je l'ai fait:
Cela coupe 17 caractères depuis le début de la chaîne (la longueur totale de la chaîne est de 67, nous avançons de -50 à partir de la fin et vous l'avez.
la source