Je souhaite supprimer les trois derniers caractères d'une chaîne:
string myString = "abcdxxx";
Notez que la chaîne est des données dynamiques.
Je souhaite supprimer les trois derniers caractères d'une chaîne:
string myString = "abcdxxx";
Notez que la chaîne est des données dynamiques.
Réponses:
lire les 3 derniers caractères de la chaîne [Question posée initialement]
Vous pouvez utiliser string.Substring et lui donner l'index de départ et il obtiendra la sous-chaîne à partir de l'index donné jusqu'à la fin.
myString.Substring(myString.Length-3)
Récupère une sous-chaîne de cette instance. La sous-chaîne commence à une position de caractère spécifiée. MSDN
Modifier , pour le message mis à jour
Supprimer les 3 derniers caractères de la chaîne [Question mise à jour]
Pour supprimer les trois derniers caractères de la chaîne, vous pouvez utiliser string.Substring (Int32, Int32) et lui donner l'index de début 0et l'index de fin trois inférieurs à la longueur de la chaîne . Il obtiendra la sous-chaîne avant les trois derniers caractères.
myString = myString.Substring(0, myString.Length-3);
String.Substring, méthode (Int32, Int32)
Récupère une sous-chaîne de cette instance. La sous-chaîne commence à une position de caractère spécifiée et a une longueur spécifiée.
Vous pouvez également utiliser la méthode String.Remove (Int32) pour supprimer les trois derniers caractères en passant l'index de début comme longueur - 3 , il supprimera de ce point à la fin de la chaîne.
myString = myString.Remove(myString.Length-3)
String.Remove, méthode (Int32)
Renvoie une nouvelle chaîne dans laquelle tous les caractères de l'instance actuelle, commençant à une position spécifiée et continuant jusqu'à la dernière position, ont été supprimés
J'ai lu tout cela, mais je voulais quelque chose d'un peu plus élégant. Juste pour supprimer un certain nombre de caractères à la fin d'une chaîne:
string.Concat("hello".Reverse().Skip(3).Reverse());
production:
"he"
Enumerable.Reversela chaîne en tampon dans un char[], puis tamponne dans un nouveau char[]qui est 3 plus court, puis génère un nouveau string(avec un autre en interne char[]). Une meilleure approche serait new string("hello".Reverse().Skip(3)), ou simplement écrire votre propre fonction d'extension de chaîne AllBut(this string in, int i)qui utilise Substring.
Lengthstocké.
.SkipLast(n). Pas besoin de rien inverser. "hello".SkipLast(3)donne"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)C'est.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
Vous pouvez utiliser String.Removepour supprimer d'une position spécifiée à la fin de la chaîne.
myString = myString.Remove(myString.Length - 3);
Probablement pas exactement ce que vous recherchez puisque vous dites que ce sont des "données dynamiques", mais étant donné votre exemple de chaîne, cela fonctionne également:
? "abcdxxx".TrimEnd('x');
"abc"
myString.Substring(myString.Length - 3, 3)
Voici des exemples de sous-chaîne. >>
http://www.dotnetperls.com/substring
Référez-les.
Supprimer les derniers caractères d'une chaîne
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)// utilisé pour supprimer le texte de l'index 10 à la fin
Facile. text = text.remove(text.length - 3). J'ai soustrait 3 parce que la Removefonction supprime tous les éléments de cet index jusqu'à la fin de la chaîne qui est text.length. Donc, si je soustrais 3, j'obtiens la chaîne avec 3 caractères supprimés.
Vous pouvez généraliser cela pour supprimer des acaractères à la fin de la chaîne, comme ceci:
text = text.remove(text.length - a)
Donc ce que j'ai fait était la même logique. La removefonction supprime tous les éléments de son intérieur à la fin de la chaîne qui correspond à la longueur du texte. Donc, si je soustrais ade la longueur de la chaîne, cela me donnera la chaîne avec les acaractères supprimés.
Donc, cela ne fonctionne pas seulement pour 3, cela fonctionne pour tous les entiers positifs, sauf si la longueur de la chaîne est inférieure ou égale à a, dans ce cas, elle retournera un nombre négatif ou 0.