Uso WinForms c #. Ho un valore stringa come di seguito,
string Something = "1,5,12,34,";
Devo rimuovere l'ultima virgola in una stringa. Quindi come posso eliminarlo?
Uso WinForms c #. Ho un valore stringa come di seguito,
string Something = "1,5,12,34,";
Devo rimuovere l'ultima virgola in una stringa. Quindi come posso eliminarlo?
Risposte:
Prova string.TrimEnd()
:
Something = Something.TrimEnd(',');
La risposta di King King è ovviamente giusta. Anche il commento di Tim Schmelter è un buon suggerimento nel tuo caso.
Ma se vuoi davvero rimuovere l'ultima virgola in una stringa , dovresti trovare l'indice dell'ultima virgola e rimuovere like;
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
L'uscita sarà;
1,5,12,3412345
Qui a demonstration
.
È troppo improbabile che tu voglia in questo modo, ma voglio indicarlo. E ricorda, il String.Remove
metodo non rimuove alcun carattere nella stringa originale, ma restituisce una nuova stringa.
Il metodo TrimEnd accetta una matrice di caratteri di input e non una stringa. Il codice riportato di seguito da Dot Net Perls , mostra un esempio più efficiente di come eseguire la stessa funzionalità di TrimEnd.
static string TrimTrailingChars(string value)
{
int removeLength = 0;
for (int i = value.Length - 1; i >= 0; i--)
{
char let = value[i];
if (let == '?' || let == '!' || let == '.')
{
removeLength++;
}
else
{
break;
}
}
if (removeLength > 0)
{
return value.Substring(0, value.Length - removeLength);
}
return value;
}
Oppure puoi convertirlo prima in Char Array:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Ora hai ogni personaggio indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Giocaci intorno
Quando hai spazi alla fine. puoi usare beliow.
ProcessStr = ProcessStr.Replace(" ", "");
Emails = ProcessStr.TrimEnd(';');
string
? Presumo a causa di un ciclo che concatena le virgole aint
s. Puoi usarestring.Join(",", ints)
invece. Ciò evita le virgole finali in primo luogo.