2013-03-22 23 views

Antwort

97

lesen letzten 3 Zeichen aus string [gefragt Zunächst Frage]

Sie können string.Substring verwenden und den Startindex geben, und es wird die Teil ab gegebenen Index bis Ende erhalten.

myString.Substring(str.Length-3) 

Ruft einen Teil aus dieser Instanz. Der Teilstring beginnt bei einer angegebenen Zeichenposition von . MSDN

bearbeiten, für aktualisiert Post

entfernen letzten 3 Zeichen aus string [Aktualisiert Frage]

letzten drei Zeichen aus der Zeichenfolge entfernen können Sie string.Substring(Int32, Int32) verwenden und geben der Startindex 0 und Ende Index drei weniger als die Zeichenfolge Länge. Es wird die Teilzeichenfolge vor den letzten drei Zeichen erhalten.

myString = myString.Substring(0, str.Length-3); 

String.Substring Method (Int32, Int32)

Ruft einen Teil aus dieser Instanz. Der Teilstring beginnt bei einer angegebenen Zeichenposition von und hat eine festgelegte Länge.

Sie können auch String.Remove(Int32) Verfahren unter Verwendung der letzten drei Zeichen, indem Startindex als Länge entfernen - 3, wird es von diesem Punkt entfernen Schnur zu beenden.

myString = myString.Remove(myString.Length-3) 

String.Remove Method (Int32)

Gibt einen neuen String, in dem alle Zeichen in dem aktuellen Beispiel an einer bestimmten Position beginnen und durch die letzte Position fortgesetzt, gelöscht wurden

+1

das ist also nicht die Antwort – braks

+5

Danke @Braks, die anfänglich gestellte Frage war "lies die letzten 3 Zeichen aus der Zeichenfolge" Das wird später bearbeitet und ich wusste nicht, siehe Frage Geschichte bearbeiten. Ihr Kommentar hat mir geholfen, meine Antwort zu korrigieren, die nach dem Bearbeiten der Frage falsch war. – Adil

13
myString = myString.Remove(myString.Length - 3, 3); 
4
myString.Remove(myString.Length-3); 
+0

'myString = myString.Remove (myString.Length - 3)' das ist. –

1

Sie können String.Remove verwenden, um von einer angegebenen Position bis zum Ende der Zeichenfolge zu löschen.

myString = myString.Remove(myString.Length - 3); 
1
string myString = "abcdxxx"; 
    if (myString.Length<3) 
     return; 
    string newString=myString.Remove(myString.Length - 3, 3); 
3
string test = "abcdxxx"; 
test = test.Remove(test.Length - 3); 
//output : abcd 
7

Ich las diese alle, aber etwas ein bisschen mehr elegant wollte. Nur um eine bestimmte Anzahl von Zeichen aus dem Ende einer Zeichenfolge zu entfernen:

string.Concat("hello".Reverse().Skip(3).Reverse()); 

Ausgang:

"he" 
+1

Dies ist ziemlich "kreativ", da es nicht die Länge der Zeichenfolge benötigt, aber die umgekehrte Operation ist wahrscheinlich teurer. – Casper

+1

Das Umkehren einer Zeichenfolge ist definitiv teurer als das Zählen ihrer Zeichen. Eine ganz neue Zeichenkette muss erstellt werden, dann wird das Original kopiert und dann muss die ursprüngliche Zeichenkette gesammelt werden. –

+0

@MattGregory-Strings sind unveränderlich: Remove, Substring, jede String-Funktion generiert eine neue Zeichenfolge. Das Überschreiben des ursprünglichen Zeigers verursacht immer eine Speicherbereinigung. Dies ist jedoch immer noch langsamer, da 'Enumerable.Reverse' den String in ein 'char []' puffert, dann in ein neues 'char []' puffert, das 3 kürzer ist, und dann einen neuen 'string' erzeugt (mit intern einem anderen' char [] '). Ein besserer Ansatz wäre 'new string (" hallo ".Reverse(). Skip (3))', oder einfach nur eine eigene String-Extension-Funktion 'AllBut (diese Zeichenfolge in, int i)', die Substring verwendet. – Wolfzoon

0

Entfernen Sie die letzten Zeichen aus einem String

TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10) 

.Text.Remove(10) // verwendet entferne Text vom Index 10 bis zum Ende

Verwandte Themen