Montag, Mai 25, 2020

Entfernen Sie den zuletzt bestimmten Zeichen in einem string in c#

Ich verwende WinForms c#.Ich habe string-Wert wie unten

string Something = "1,5,12,34,";

Muss ich entfernen Letzte Komma in einem string. So Wie ich es löschen kann ?

  • Warum haben Sie so string? Ich gehe davon aus, da eine Schleife, die verbindet Sie mit Kommas zu ints. Sie können string.Join(",", ints) statt. Das vermeidet trailing Kommas in den ersten Platz.
InformationsquelleAutor user3042186 | 2013-11-27

6 Kommentare

  1. 202

    Versuchen string.TrimEnd():

    Something = Something.TrimEnd(',');
    • Dies ist die beste Lösung, denn es funktioniert für alle Zeichenfolgen, einschließlich Situationen, in denen Sie nicht wissen, vor der Zeit, WENN die Zeichenfolge nicht in der Tat Ende in ein Komma, oder nicht.
    • Dies ist der Grund, warum ich immer noch nach Lösungen suchen, auch für Dinge, die ich könnte leicht selber Schreibe. Jemand anderes hat in der Regel gelöst. 🙂
  2. 16

    King King ‚ s Antwort natürlich Recht. Auch Tim Schmelter Kommentar ist auch ein guter Vorschlag in deinem Fall.

    Aber wenn Sie wollen, wirklich entfernen Letzte Komma in einem string, sollten Sie den index der letzten Komma und entfernen wie;

    string s = "1,5,12,34,12345";
    int index = s.LastIndexOf(',');
    Console.WriteLine(s.Remove(index, 1));

    Ausgang;

    1,5,12,3412345

    Hier ein demonstration.

    Ist es auch unwahrscheinlich, dass Sie wollen auf diese Weise aber möchte ich Sie auf es. Und denken Sie daran, - String.Entfernen Methode nicht entfernen Sie alle Zeichen in der ursprünglichen Zeichenfolge, es gibt neue Zeichenfolge.

  3. 3

    Versuchen string.Remove();

    string str = "1,5,12,34,";
    string removecomma = str.Remove(str.Length-1);
    MessageBox.Show(removecomma);
    • wird nicht funktionieren, ob str leer ist
  4. 2

    Den TrimEnd-Methode braucht einen input-character-array und kein string.
    Der code unten von Dot Net Perls, zeigt eine effizientere Beispiel, wie die gleiche Funktionalität wie 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;
    }
  5. 0

    Oder Sie können es zu konvertieren in Char-Array Erster durch:

    string Something = "1,5,12,34,";
    char[] SomeGoodThing=Something.ToCharArray[];

    Jetzt haben Sie jedes Zeichen indexed:

    SomeGoodThing[0] -> '1'
    SomeGoodThing[1] -> ','

    Spielen, um es

  6. -1
    Dim psValue As String = "1,5,12,34,123,12"
    psValue = psValue.Substring(0, psValue.LastIndexOf(","))

    Ausgabe:

    1,5,12,34,123
    • Frage war über C#, nicht VB.

Kostenlose Online-Tests