WinForms c #을 사용합니다. 아래와 같은 문자열 값이 있습니다.
string Something = "1,5,12,34,";
문자열에서 마지막 쉼표를 제거해야합니다. 그래서 어떻게 삭제할 수 있습니까?
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
메서드는 원래 문자열의 문자를 제거하지 않고 새 문자열을 반환합니다.
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] -> ','
주위에서 놀아 라.
string
? 나는 쉼표를int
s에 연결하는 루프 때문에 가정합니다 .string.Join(",", ints)
대신 사용할 수 있습니다 . 그것은 처음에 후행 쉼표를 피합니다.