2011-01-13 12 views
6

Sto tentando di rimuovere un ultimo carattere di una stringa. Questo ultimo carattere è una nuova riga (System.Environment.NewLine).Rimuovi l'ultimo carattere di una stringa (VB.NET 2008)

Ho provato alcune cose, ma non riesco a rimuoverlo.

Esempio:

myString.Remove(sFP.Length - 1) 

Esempio 2:

myString= Replace(myString, Environment.NewLine, "", myString.Length - 1) 

Come posso fare?

risposta

16

Se la nuova riga è CR LF, sono in realtà due caratteri consecutivi. Prova la tua chiamata Remove con Length - 2.

Se si desidera rimuovere tutti i "\ n" e caratteri "\ r" alla fine della stringa, provare a chiamare TrimEnd, passando i personaggi:

str.TrimEnd(vbCr, vbLf) 

per rimuovere tutti i caratteri di spaziatura (a capo, schede, spazi, ...) basta chiamare TrimEnd senza passare nulla.

+0

Come in C#, VB stringhe sono immutabili. –

+0

@Konrad Ovviamente! Ora che ci penso, in realtà è importante sottolineare questa domanda perché potrebbe essere particolarmente confusa. Per chiarire, intendevo fornire * un'espressione *, non un'istruzione * *. Non modificherà la variabile 'str'. Il valore di ritorno è una stringa distinta. Devi usare qualcosa come 'str = str.TrimEnd()' se vuoi che la variabile cambi. –

+1

ok. grazie. Risolto seguendo il tuo esempio: myString = myString.Remove (mystring.Length - 2) – aco

3
Dim str As String = "Test" & vbCrLf 
str = str.Substring(0, str.Length - vbCrLf.Length) 

lo stesso con Environment.NewLine invece di vbCrLf:

str = "Test" & Environment.NewLine 
str = str.Substring(0, str.Length - Environment.NewLine.Length) 

Btw, la differenza è: Environment.NewLine è la piattaforma-specifici (fe ritorna altra stringa in altri sistemi operativi)

Il tuo remove -approach non ha funzionato perché non hai assegnato il valore di ritorno di questa funzione al tuo riferimento di stringa originale:

str = str.Remove(str.Length - Environment.NewLine.Length) 

o se si desidera sostituire tutti i ritorni a capo:

str = str.Replace(Environment.NewLine, String.Empty) 
-1

Usa:

Dim str As String 
str = "cars,cars,cars" 
str = str.Remove(str.LastIndexOf(",")) 
Problemi correlati