J'ai une chaîne direGarniture dernier caractère d'une chaîne
"Hello! world!"
Je veux faire une garniture ou enlever pour enlever le! hors monde mais pas éteint Bonjour.
J'ai une chaîne direGarniture dernier caractère d'une chaîne
"Hello! world!"
Je veux faire une garniture ou enlever pour enlever le! hors monde mais pas éteint Bonjour.
"Hello! world!".TrimEnd('!');
EDIT:
Ce que j'ai remarqué dans ce type de questions qui suggèrent tout à fait tout le monde pour supprimer le dernier caractère de donnée chaîne. Mais cela ne remplit pas la définition de la méthode Trim.
Trim - Supprime toutes les occurrences de caractères blancs depuis le début et à la fin de cette instance.
En vertu de cette définition supprimant uniquement le dernier caractère de la chaîne est mauvaise solution.
Donc, si nous voulons « Trim dernier caractère de chaîne » nous devrions faire quelque chose comme ça
Exemple comme méthode d'extension:
public static class MyExtensions
{
public static string TrimLastCharacter(this String str)
{
if(String.IsNullOrEmpty(str)){
return str;
} else {
return str.TrimEnd(str[str.Length - 1]);
}
}
}
Remarque si vous voulez supprimer tous les caractères de la même valeur ie (!!!!) la méthode ci-dessus supprime toutes les existences de '!' à partir de la fin de la chaîne, mais si vous voulez supprimer uniquement le dernier caractère vous devez utiliser ceci:
else { return str.Remove(str.Length - 1); }
Cela vaut mieux tant que vous savez toujours quel caractère vous voulez supprimer de la fin de la chaîne. –
Comme il sed "out the '!", Mais si nous ne savons pas que nous devrions utiliser, 's = s.TrimEnd (s [s.Length - 1]);', en supprimant le dernier char de la chaîne ne pas plein remplissez la définition de Trim. –
Salut Vash, que penses-tu de ma solution en utilisant un RegEx? Il répond à la demande du Thqr et permet de supprimer le '!' char de tout "monde"! expression, partout où l'expression est placée, dans une seule ligne de code. –
String withoutLast = yourString.Substring(0,(yourString.Length - 1));
Assurez-vous que votre chaîne contient au moins 1 caractère. –
assurez-vous également que votre chaîne se termine toujours par le caractère que vous voulez supprimer EG: "Hello! World" finirait par "Hello! Worl". –
string helloOriginal = "Hello! World!";
string newString = helloOriginal.Substring(0,helloOriginal.LastIndexOf('!'));
string s1 = "Hello! world!"
string s2 = s1.Substring(0, s1.Length - 1);
Console.WriteLine(s1);
Console.WriteLine(s2);
string s1 = "Hello! world!";
string s2 = s1.Trim('!');
Notez que cela supprimerait aussi le '!' à partir du début de la chaîne ... – contactmatt
comment travailler avec finswith propriété? peut-il être utilisé ici? – SaMolPP
Si vous voulez supprimer le '! le caractère d'une expression spécifique (« monde » dans votre cas), vous pouvez alors utiliser cette expression régulière
string input = "Hello! world!";
string output = Regex.Replace(input, "(world)!", "$1", RegexOptions.Multiline | RegexOptions.Singleline);
// result: "Hello! world"
$ 1 caractère spécial contient tous les correspondant « monde » expressions, et il est utilisé pour remplacer l'original " monde!" expression
vous pouvez également utiliser ceci:
public static class Extensions
{
public static string RemovePrefix(this string o, string prefix)
{
if (prefix == null) return o;
return !o.StartsWith(prefix) ? o : o.Remove(0, prefix.Length);
}
public static string RemoveSuffix(this string o, string suffix)
{
if(suffix == null) return o;
return !o.EndsWith(suffix) ? o : o.Remove(o.Length - suffix.Length, suffix.Length);
}
}
je pris le chemin de l'écriture d'une extension en utilisant la TrimEnd juste parce que j'utilisais déjà il en ligne et il était heureux avec elle ... savoir:
static class Extensions
{
public static string RemoveLastChars(this String text, string suffix)
{
char[] trailingChars = suffix.ToCharArray();
if (suffix == null) return text;
return text.TrimEnd(trailingChars);
}
}
Assurez-vous d'inclure l'espace de noms dans vos classes en utilisant la classe statique P et l'utilisation est:
string _ManagedLocationsOLAP = string.Empty;
_ManagedLocationsOLAP = _validManagedLocationIDs.RemoveLastChars(",");
L'autre exemple de coupe dernier caractère d'une chaîne:
string outputText = inputText.Remove(inputText.Length - 1, 1);
Vous pouvez le mettre dans une méthode d'extension et l'empêcher de la chaîne nulle, etc.
if (yourString.Length > 1)
withoutLast = yourString.Substring(0, yourString.Length - 1);
ou
if (yourString.Length > 1)
withoutLast = yourString.TrimEnd().Substring(0, yourString.Length - 1);
... Si vous souhaitez supprimer un caractère non-blanc de la fin.
je mis à la place de juste pour compenser la downvote sans un commentaire.Cela déteste quand les gens font cela –
Il pourrait avoir été parce qu'il y a pas de méthode 'TrimEnd()' et s'il y en avait, l'appel 'Substring (..)' suivant pourrait échouer sur des chaînes courtes. – Rory
Essayez ceci:
return((str).Remove(str.Length-1));
Peut-être est au-delà de votre demande, mais je peux vous demander de prendre un moment pour réfléchir sur l'utilisation du regex i proposé? –
Copie possible de [Supprimer le dernier caractère de la chaîne] (http://stackoverflow.com/questions/7901360/delete-last-char-of-string) –