Warum hast du so einen string? Ich nehme wegen einer Schleife an, die Kommas mit ints verkettet . Sie können string.Join(",", ints)stattdessen verwenden. Dadurch werden in erster Linie Nachkommastellen vermieden.
Dies ist die beste Lösung, da sie für alle Zeichenfolgen funktioniert, einschließlich Situationen, in denen Sie nicht im Voraus wissen, ob die Zeichenfolge tatsächlich mit einem Komma endet oder nicht.
Östlich von Nirgendwo
6
Deshalb suche ich immer noch nach Lösungen, auch für Dinge, die ich leicht selbst schreiben könnte. Jemand anderes hat es normalerweise gelöst. :)
dpberry178
1
Die einfachen Anführungszeichen waren also kein Fehler. Heute habe ich gelernt, dass char und string mit einfachen bzw. doppelten Anführungszeichen definiert sind.
Wenn Sie jedoch das letzte Komma in einer Zeichenfolge wirklich entfernen möchten , sollten Sie den Index des letzten Kommas finden und like entfernen.
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
Es ist zu unwahrscheinlich, dass Sie diesen Weg wollen, aber ich möchte darauf hinweisen. Und denken Sie daran, dass die String.RemoveMethode kein Zeichen in der ursprünglichen Zeichenfolge entfernt, sondern eine neue Zeichenfolge zurückgibt.
Die TrimEnd-Methode verwendet ein Eingabezeichenarray und keine Zeichenfolge. Der folgende Code von Dot Net Perls zeigt ein effizienteres Beispiel für die Ausführung derselben Funktionalität wie TrimEnd.
staticstringTrimTrailingChars(stringvalue)
{
int removeLength = 0;
for (int i = value.Length - 1; i >= 0; i--)
{
charlet = value[i];
if (let == '?' || let == '!' || let == '.')
{
removeLength++;
}
else
{
break;
}
}
if (removeLength > 0)
{
returnvalue.Substring(0, value.Length - removeLength);
}
returnvalue;
}
string
? Ich nehme wegen einer Schleife an, die Kommas mitint
s verkettet . Sie könnenstring.Join(",", ints)
stattdessen verwenden. Dadurch werden in erster Linie Nachkommastellen vermieden.Antworten:
Versuchen Sie
string.TrimEnd()
:Something = Something.TrimEnd(',');
quelle
Die Antwort von König König ist natürlich richtig. Auch Tim Schmelters Kommentar ist in Ihrem Fall ein guter Vorschlag.
Wenn Sie jedoch das letzte Komma in einer Zeichenfolge wirklich entfernen möchten , sollten Sie den Index des letzten Kommas finden und like entfernen.
string s = "1,5,12,34,12345"; int index = s.LastIndexOf(','); Console.WriteLine(s.Remove(index, 1));
Ausgabe wird sein;
1,5,12,3412345
Hier a
demonstration
.Es ist zu unwahrscheinlich, dass Sie diesen Weg wollen, aber ich möchte darauf hinweisen. Und denken Sie daran, dass die
String.Remove
Methode kein Zeichen in der ursprünglichen Zeichenfolge entfernt, sondern eine neue Zeichenfolge zurückgibt.quelle
Versuchen
string.Remove();
string str = "1,5,12,34,"; string removecomma = str.Remove(str.Length-1); MessageBox.Show(removecomma);
quelle
Die TrimEnd-Methode verwendet ein Eingabezeichenarray und keine Zeichenfolge. Der folgende Code von Dot Net Perls zeigt ein effizienteres Beispiel für die Ausführung derselben 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; }
quelle
Oder Sie können es zuerst in Char Array konvertieren, indem Sie:
string Something = "1,5,12,34,"; char[] SomeGoodThing=Something.ToCharArray[];
Jetzt hast du jeden Charakter
indexed
:SomeGoodThing[0] -> '1' SomeGoodThing[1] -> ','
Spielen Sie herum
quelle
Versuchen Sie es unten
Something..TrimEnd (",". ToCharArray ());
quelle
Dim psValue As String = "1,5,12,34,123,12" psValue = psValue.Substring(0, psValue.LastIndexOf(","))
Ausgabe:
1,5,12,34,123
quelle