Tôi sử dụng WinForms c #. Tôi có giá trị chuỗi như bên dưới,
string Something = "1,5,12,34,";
Tôi cần xóa dấu phẩy cuối cùng trong một chuỗi. Vì vậy, làm thế nào tôi có thể xóa nó?
Tôi sử dụng WinForms c #. Tôi có giá trị chuỗi như bên dưới,
string Something = "1,5,12,34,";
Tôi cần xóa dấu phẩy cuối cùng trong một chuỗi. Vì vậy, làm thế nào tôi có thể xóa nó?
Câu trả lời:
Hãy thử string.TrimEnd()
:
Something = Something.TrimEnd(',');
Câu trả lời của King King tất nhiên là đúng. Ngoài ra bình luận của Tim Schmelter cũng là gợi ý hay trong trường hợp của bạn.
Nhưng nếu bạn thực sự muốn loại bỏ dấu phẩy cuối cùng trong một chuỗi , bạn nên tìm chỉ mục của dấu phẩy cuối cùng và loại bỏ như;
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
Đầu ra sẽ là;
1,5,12,3412345
Đây a demonstration
.
Không chắc bạn muốn theo cách này nhưng tôi muốn chỉ ra. Và hãy nhớ rằng, String.Remove
phương thức không loại bỏ bất kỳ ký tự nào trong chuỗi gốc, nó trả về chuỗi mới.
Phương thức TrimEnd nhận một mảng ký tự đầu vào chứ không phải một chuỗi. Đoạn mã dưới đây từ Dot Net Perls , cho thấy một ví dụ hiệu quả hơn về cách thực hiện chức năng tương tự như 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;
}
Hoặc bạn có thể chuyển đổi nó thành Char Array trước bằng cách:
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
Bây giờ bạn có mỗi ký tự indexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
Chơi xung quanh nó
string
? Tôi giả sử vì một vòng lặp nối dấu phẩy vớiint
s. Bạn có thể sử dụngstring.Join(",", ints)
thay thế. Điều đó tránh dấu phẩy ở vị trí đầu tiên.