[c#] 문자열에서 마지막 특정 문자 제거 C #

WinForms c #을 사용합니다. 아래와 같은 문자열 값이 있습니다.

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

문자열에서 마지막 쉼표를 제거해야합니다. 그래서 어떻게 삭제할 수 있습니까?



답변

시도해보십시오 string.TrimEnd():

Something = Something.TrimEnd(',');


답변

King King의 대답 은 물론 맞습니다. 또한 Tim Schmelter의 의견 은 귀하의 경우에도 좋은 제안입니다.

그러나 문자열에서 마지막 쉼표를 정말로 제거하려면 마지막 쉼표 의 색인을 찾아서 다음과 같이 제거해야합니다.

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

출력은 다음과 같습니다.

1,5,12,3412345

여기에 demonstration.

이 방법을 원할 것 같지는 않지만 지적하고 싶습니다. 그리고 String.Remove메서드는 원래 문자열의 문자를 제거하지 않고 새 문자열을 반환합니다.


답변

시험 string.Remove();

string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);


답변

TrimEnd 메서드는 문자열이 아닌 입력 문자 배열을 사용합니다. 아래의 Dot Net Perls 코드 는 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;
}


답변

또는 다음과 같이 먼저 Char Array로 변환 할 수 있습니다.

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

이제 각 캐릭터가 있습니다 indexed.

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

주위에서 놀아 라.


답변

아래에서 시도

Something..TrimEnd ( “,”. ToCharArray ());


답변

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

산출:

1,5,12,34,123