Comment puis-je utiliser de la Chaîne de découpage des indices dans Swift 4?
J'ai le simple suivant du code écrit dans Swift 3:
let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)
De Xcode 9 beta 5, j'obtiens le message d'avertissement suivant:
'
substring(to:)
' est obsolète: Veuillez utiliserString
découpage indice avec un "partielle gamme de' l'opérateur.
Comment cela peut-il découpage indice partielle de la gamme de être utilisé dans Swift 4?
Vous devez vous connecter pour publier un commentaire.
Vous devriez laisser un côté vide, d'où le nom de "partielle de la gamme".
Il en est de même pour partielle gamme de opérateurs, il suffit de laisser l'autre côté vide:
Gardez à l'esprit que ces opérateurs de plages de retour d'un
Substring
. Si vous souhaitez convertir une chaîne de caractères, utilisezString
's la fonction d'initialisation:Vous pouvez lire plus au sujet de la nouvelle sous-chaînes ici.
str[..<index]
renvoie uneSubstring
. Si vous vouleznewStr
être unString
vous devez écrire:let newStr = "\(str[..<index])"
Substring
est sans doute un peu à confusion, car ce que vous êtes vraiment essayer de l'accomplir, c'estString
initialisation:let newStr = String(str[..<index])
.Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo<Int>'
. Quels sont les types de valeurs doivent être utilisés là-bas?str[..<str.index(str.startIndex, offsetBy: 8)]
ou quelque chose comme ça. Gardez à l'esprit questr.index
est un linéaire en temps fonctionnement en fonction deoffsetBy
.str.prefix(8)
str[index>..]
ne fonctionne pas 🙁 Ou ai-je besoin pour compenser l'index?str = "Hello Python" print(str[0:2])
résultat est "Il"Convertir Substring (Swift 3) de la Chaîne de Découpage (Swift 4)
Exemples Dans Swift 3, 4:
Swift 4
D'utilisation
Code
Plus courte Swift 4:
La conversion de votre code Swift 4 peut également être fait de cette façon:
Vous pouvez utiliser le code ci-dessous pour avoir une nouvelle chaîne:
substring(à partir de: index) Converti à [index...]
Vérifier l'échantillon
Swift5
(Java de la méthode sous-chaîne):
Utilisation:
from
àto-1
, par exemple"Hello".substring(1,4)
renvoie "apl"). Avec une petite modification (startIndex..<endIndex
) c'est la meilleure solution que j'ai trouvé jusqu'à présent qui fait exactement cela avec seulement quelques lignes de code.Quelques extensions utiles:
Exemple de
uppercasedFirstCharacter
la commodité de la propriété dans Swift3 et Swift4.Propriété
uppercasedFirstCharacterNew
montre comment utiliser la Chaîne de découpage indice dans Swift4.Vous pouvez créer votre propre méthode sous-chaîne à l'aide de l'extension de la classe String comme ci-dessous:
La création d'une sous-Chaîne (préfixe et suffixe) de Chaîne à l'aide de Swift 4:
De sortie
Si vous souhaitez générer une sous-chaîne entre les 2 indices , utilisez :
J'ai écrit une chaîne d'extension pour le remplacement de la Chaîne: chaîne:'
PS: Options sont obligés de les déballer. Veuillez ajouter un Type de contrôle de sécurité, chaque fois que nécessaire.
Lors de la programmation, j'ai souvent des chaînes de caractères avec tout simplement A-Za-z et 0-9. Pas besoin de difficile de l'Indice actions. Cette extension est basée sur la plaine de la vieille gauche /milieu /droite fonctions.
avec cette méthode, vous pouvez obtenir une plage spécifique de la chaîne.vous devez passer les index de début et après que le nombre total de caractères que vous voulez.
C'est ma solution, pas d'avertissement, pas d'erreurs, mais parfait
encodedOffset
est considéré comme nocif sera deprecated.Espère que cela va aider le petit plus :-
Si vous voulez une sous-chaîne après un certain indice particulier.
Si vous voulez une sous-chaîne après la suppression d'une chaîne de caractères à la fin.
vous pouvez également créer des index avec le code suivant :-
Espère que cela serait utile.