Comment ignorer les 10 premiers caractères d'une chaîne?
Contribution:
str = "hello world!";
Production:
d!
Comment ignorer les 10 premiers caractères d'une chaîne?
Contribution:
str = "hello world!";
Production:
d!
Réponses:
str = "hello world!";
str.Substring(10, str.Length-10)
vous devrez effectuer les vérifications de longueur sinon cela générerait une erreur
str = str.Remove(0,10);
Supprime les 10 premiers caractères
ou
str = str.Substring(10);
Crée une sous-chaîne commençant au 11e caractère jusqu'à la fin de la chaîne.
Pour vos besoins, ils devraient fonctionner de la même manière.
La sous-chaîne est probablement ce que vous voulez, comme d'autres l'ont souligné. Mais juste pour ajouter une autre option au mix ...
string result = string.Join(string.Empty, str.Skip(10));
Vous n'avez même pas besoin de vérifier la longueur à ce sujet! :) Si ses 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 ci-dessous:
var str = "hello world!";
str = str.Substring(10);
Ici, la sortie est:
d!
Si vous pouvez appliquer un codage défensif en vérifiant sa longueur.
Vous pouvez supprimer le caractère en utilisant la ligne ci-dessous,
: - Vérifiez d'abord que la chaîne a suffisamment de caractères à supprimer , 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);
Vous pouvez utiliser la méthode Méthode Substring qui prend un seul paramètre, qui est l'index à partir duquel commencer.
Dans mon code ci-dessous, je traite le 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)));
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.
Il n'est pas nécessaire de spécifier la longueur dans la Substring
méthode. Par conséquent:
string s = hello world;
string p = s.Substring(3);
p
sera:
"lo monde".
La seule exception dont vous devez tenir compte est ArgumentOutOfRangeException
si
startIndex
est inférieur à zéro ou supérieur à la longueur de cette instance.
À partir de C # 8, vous pouvez simplement utiliser Range Operator. C'est le moyen le plus efficace et le meilleur pour gérer de tels cas.
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8
n'est pas pris en charge lors du ciblage .NET Framework
.
L'appel SubString()
alloue une nouvelle chaîne. Pour des performances optimales, vous devez éviter cette allocation supplémentaire. En commençant par, C# 7.2
vous pouvez profiter du modèle Span .
Lors du ciblage .NET Framework
, incluez le package System.Memory NuGet
. Pour les .NET Core
projets, cela fonctionne hors de la boîte.
static void Main(string[] args)
{
var str = "hello world!";
var span = str.AsSpan(10); // No allocation!
// Outputs: d!
foreach (var c in span)
{
Console.Write(c);
}
Console.WriteLine();
}