Ich möchte die letzten drei Zeichen aus einer Zeichenfolge entfernen:
string myString = "abcdxxx";
Beachten Sie, dass es sich bei der Zeichenfolge um dynamische Daten handelt.
Ich möchte die letzten drei Zeichen aus einer Zeichenfolge entfernen:
string myString = "abcdxxx";
Beachten Sie, dass es sich bei der Zeichenfolge um dynamische Daten handelt.
Antworten:
Lesen Sie die letzten 3 Zeichen aus der Zeichenfolge [Anfangs gestellte Frage]
Sie können string.Substring verwenden und ihm den Startindex geben, und der Teilstring wird vom angegebenen Index bis zum Ende gestartet .
myString.Substring(myString.Length-3)
Ruft einen Teilstring von dieser Instanz ab. Die Teilzeichenfolge beginnt an einer bestimmten Zeichenposition. MSDN
Bearbeiten , für aktualisierten Beitrag
Entfernen Sie die letzten 3 Zeichen aus der Zeichenfolge [Aktualisierte Frage]
Um die letzten drei Zeichen aus dem String entfernen können Sie verwenden String.substring (Int32, Int32) und geben sie den Startindex 0und Ende Index drei weniger als die Stringlänge . Der Teilstring wird vor den letzten drei Zeichen angezeigt.
myString = myString.Substring(0, myString.Length-3);
String.Substring-Methode (Int32, Int32)
Ruft einen Teilstring von dieser Instanz ab. Der Teilstring beginnt an einer bestimmten Zeichenposition und hat eine bestimmte Länge.
Sie können auch die String.Remove (Int32) -Methode verwenden, um die letzten drei Zeichen zu entfernen, indem Sie den Startindex als Länge - 3 übergeben . Dieser wird von diesem Punkt bis zum Ende des Strings entfernt.
myString = myString.Remove(myString.Length-3)
Gibt eine neue Zeichenfolge zurück, in der alle Zeichen in der aktuellen Instanz gelöscht wurden, beginnend an einer bestimmten Position und bis zur letzten Position
Ich habe all das durchgelesen, wollte aber etwas eleganteres. Nur um eine bestimmte Anzahl von Zeichen am Ende einer Zeichenfolge zu entfernen:
string.Concat("hello".Reverse().Skip(3).Reverse());
Ausgabe:
"he"
Enumerable.Reversedie Zeichenfolge in a char[]gepuffert wird, dann in eine neue char[], die 3 kürzer ist, gepuffert wird und dann eine neue generiert wird string(mit intern einer anderen char[]). Ein besserer Ansatz wäre new string("hello".Reverse().Skip(3)), oder einfach eine eigene String-Erweiterungsfunktion zu schreiben AllBut(this string in, int i), die Teilzeichenfolge verwendet.
Lengthgespeichert.
.SkipLast(n). Keine Notwendigkeit, etwas umzukehren. "hello".SkipLast(3)gibt"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)das ist.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
Sie können verwenden String.Remove, um von einer angegebenen Position bis zum Ende der Zeichenfolge zu löschen.
myString = myString.Remove(myString.Length - 3);
Wahrscheinlich nicht genau das, wonach Sie suchen, da Sie sagen, dass es sich um "dynamische Daten" handelt, aber angesichts Ihrer Beispielzeichenfolge funktioniert dies auch:
? "abcdxxx".TrimEnd('x');
"abc"
myString.Substring(myString.Length - 3, 3)
Hier sind Beispiele für Teilzeichenfolgen. >>
http://www.dotnetperls.com/substring
Verweisen Sie diese.
Entfernen Sie die letzten Zeichen aus einer Zeichenfolge
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)// wird verwendet, um Text vom Index 10 bis zum Ende zu entfernen
Einfach. text = text.remove(text.length - 3). Ich habe 3 subtrahiert, weil die RemoveFunktion alle Elemente aus diesem Index bis zum Ende der Zeichenfolge entfernt text.length. Wenn ich also 3 subtrahiere, wird die Zeichenfolge mit 3 Zeichen entfernt.
Sie können dies so verallgemeinern, dass aZeichen am Ende der Zeichenfolge entfernt werden:
text = text.remove(text.length - a)
Was ich also tat, war dieselbe Logik. Die removeFunktion entfernt alle Elemente von ihrem Inneren bis zum Ende der Zeichenfolge, die der Länge des Texts entspricht. Wenn ich also avon der Länge der Zeichenfolge subtrahiere , erhält ich die Zeichenfolge mit aentfernten Zeichen.
Es funktioniert also nicht nur für 3, sondern für alle positiven Ganzzahlen, außer wenn die Länge der Zeichenfolge kleiner oder gleich aist. In diesem Fall wird eine negative Zahl oder 0 zurückgegeben.