Ich muss zwei Zeichen vom Ende des Strings entfernen.
Also:
string = "Hallo Marco !"
muss sein
Hallo Marco
Wie kann ich das machen?
Ich muss zwei Zeichen vom Ende des Strings entfernen.
Also:
string = "Hallo Marco !"
muss sein
Hallo Marco
Wie kann ich das machen?
C# 8 führte Indizes und Bereiche ein, die es ermöglichen, zu schreiben
str[^2..]
Dies entspricht
str.Substring(str.Length - 2, 2)
Tatsächlich ist dies fast genau das, was der Compiler generieren wird, daher entsteht kein Overhead.
Beachten Sie, dass Sie eine ArgumentOutOfRangeException
erhalten, wenn der Bereich nicht innerhalb des Strings liegt.
Ich werde das Ende für unerwünschte Zeichen kürzen:
s = s.TrimEnd(' ', '!');
Um sicherzustellen, dass es auch mit mehr Leerzeichen funktioniert. Oder besser, wenn Sie sicherstellen möchten, dass es immer funktioniert, da der Eingabetext anscheinend vom Benutzer stammt:
Regex r = new Regex(@"(?'purged'(\w|\s)+\w)");
Match m = r.Match("Hallo Marco !!");
if (m.Success)
{
string result = m.Groups["purged"].Value;
}
Damit sind Sie sicherer. Eine Bereinigung, die sich darauf stützt, dass die letzten beiden Zeichen entfernt werden müssen, ist zu schwach.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.