Comment ignorer les 10 premiers caractères d'une chaîne?
Contribution:
str = "hello world!";
Sortie:
d!
str = "hello world!";
str.Substring(10, str.Length-10)
vous devrez effectuer les vérifications de longueur sinon cela renverrait une erreur
str = str.Remove(0,10);
Supprime les 10 premiers caractères
ou
str = str.Substring(10);
Crée une sous-chaîne du 11ème caractère à la fin de la chaîne.
Pour vos besoins, ils doivent fonctionner de manière identique.
La sous-chaîne est probablement ce que vous voulez, comme d'autres l'ont souligné. Mais juste pour ajouter une autre option au mélange ...
string result = string.Join(string.Empty, str.Skip(10));
Vous n'avez même pas besoin de vérifier la longueur à ce sujet! :) Si c'est moins de 10 caractères, vous obtenez une chaîne vide.
Substring
a deux méthodes de surcharge:
public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.
public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
Donc, pour ce scénario, vous pouvez utiliser la première méthode comme celle ci-dessous:
var str = "hello world!";
str = str.Substring(10);
Ici le résultat est:
d!
Si vous pouvez appliquer un codage défensif en vérifiant sa longueur.
La Substring
a un paramètre appelé startIndex. Définissez-le en fonction de l'index que vous souhaitez utiliser.
Pour:
var str = "hello world!";
Pour obtenir la chaîne résultante sans les 10 premiers caractères et une chaîne vide si la chaîne est inférieure ou égale à 10, vous pouvez utiliser:
var result = str.Length <= 10 ? "" : str.Substring(10);
ou
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
La première variante est préférée car elle ne nécessite qu'un seul paramètre de méthode.
Vous pouvez utiliser la méthode Substring méthode qui prend un seul paramètre, qui est l’index à partir duquel démarrer.
Dans mon code ci-dessous, je traite du cas où la longueur est inférieure à votre index de départ souhaité et lorsque la longueur est égale à zéro.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
Vous pouvez supprimer les caractères en utilisant la ligne ci-dessous,
: - Première vérification que String a assez de caractère pour être supprimé , comme
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
Utilisez la méthode de sous-chaîne.
string s = "hello world";
s=s.Substring(10, s.Length-10);
Il n'est pas nécessaire de spécifier la longueur dans la méthode Substring
. Par conséquent:
string s = hello world;
string p = s.Substring(3);
p
sera:
"le monde".
La seule exception à traiter est ArgumentOutOfRangeException
si startIndex
est inférieure à zéro ou supérieure à la longueur de cette instance.