Dlaczego masz taki string? Zakładam z powodu pętli, która łączy przecinki z ints. Możesz użyć string.Join(",", ints)zamiast tego. To przede wszystkim pozwala uniknąć końcowych przecinków.
Jest to najlepsze rozwiązanie, ponieważ działa dla wszystkich ciągów znaków, w tym sytuacji, w których nie wiadomo z wyprzedzeniem, JEŻELI ciąg faktycznie kończy się przecinkiem, czy nie.
East of Nowhere
6
Dlatego wciąż szukam rozwiązań, nawet tych, które sam mógłbym łatwo napisać. Ktoś inny zwykle go rozwiązał. :)
dpberry178
1
Więc pojedyncze cytaty nie były błędem. Dziś dowiedziałem się, że znak i ciąg znaków są definiowane odpowiednio za pomocą pojedynczych i podwójnych cudzysłowów.
Jest to zbyt mało prawdopodobne, abyś chciał w ten sposób, ale chcę to wskazać. I pamiętaj, String.Removemetoda nie usuwa żadnego znaku z oryginalnego ciągu, zwraca nowy ciąg.
Metoda TrimEnd przyjmuje wejściową tablicę znaków, a nie ciąg. Poniższy kod z Dot Net Perls przedstawia bardziej wydajny przykład wykonywania tej samej funkcji co 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
? Zakładam z powodu pętli, która łączy przecinki zint
s. Możesz użyćstring.Join(",", ints)
zamiast tego. To przede wszystkim pozwala uniknąć końcowych przecinków.Odpowiedzi:
Spróbuj
string.TrimEnd()
:Something = Something.TrimEnd(',');
źródło
Odpowiedź King Kinga jest oczywiście poprawna. Również komentarz Tima Schmeltera jest również dobrą sugestią w twoim przypadku.
Ale jeśli naprawdę chcesz usunąć ostatni przecinek w ciągu , powinieneś znaleźć indeks ostatniego przecinka i usunąć polubienie;
string s = "1,5,12,34,12345"; int index = s.LastIndexOf(','); Console.WriteLine(s.Remove(index, 1));
Wyjście będzie;
1,5,12,3412345
Tutaj
demonstration
.Jest to zbyt mało prawdopodobne, abyś chciał w ten sposób, ale chcę to wskazać. I pamiętaj,
String.Remove
metoda nie usuwa żadnego znaku z oryginalnego ciągu, zwraca nowy ciąg.źródło
Próbować
string.Remove();
string str = "1,5,12,34,"; string removecomma = str.Remove(str.Length-1); MessageBox.Show(removecomma);
źródło
Metoda TrimEnd przyjmuje wejściową tablicę znaków, a nie ciąg. Poniższy kod z Dot Net Perls przedstawia bardziej wydajny przykład wykonywania tej samej funkcji co 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; }
źródło
Lub możesz najpierw przekonwertować go na Char Array przez:
string Something = "1,5,12,34,"; char[] SomeGoodThing=Something.ToCharArray[];
Teraz masz każdą postać
indexed
:SomeGoodThing[0] -> '1' SomeGoodThing[1] -> ','
Pobaw się
źródło
Spróbuj poniżej
Coś..TrimEnd (",". ToCharArray ());
źródło
Dim psValue As String = "1,5,12,34,123,12" psValue = psValue.Substring(0, psValue.LastIndexOf(","))
wynik:
1,5,12,34,123
źródło
Kiedy masz spacje na końcu. możesz użyć beliow.
ProcessStr = ProcessStr.Replace(" ", ""); Emails = ProcessStr.TrimEnd(';');
źródło