Sử dụng phương thức StringBuilder.Replace() để thay thế khoảng trắng bằng chuỗi rỗng, hiệu quả hơn so với string.Replace khi thao tác nhiều lần.
Ví dụ với StringBuilder
StringBuilder str = new StringBuilder("Patience is key!");
str.Replace(" ", ""); // Xóa tất cả khoảng trắng
// Kết quả: "Patienceiskey!"
Mã nguồn hoàn chỉnh
using System;
using System.Text;
class Demo
{
static void Main()
{
// Chuỗi ban đầu
StringBuilder str = new StringBuilder("Patience is key!");
Console.WriteLine(str.ToString()); // Patience is key!
// Xóa khoảng trắng
str.Replace(" ", "");
// Chuỗi mới
Console.WriteLine(str.ToString()); // Patienceiskey!
Console.ReadLine();
}
}
Kết quả
Patience is key!
Patienceiskey!
Các cách xóa khoảng trắng khác
| Cách | Code | Phạm vi | Hiệu suất |
|---|---|---|---|
| StringBuilder.Replace | sb.Replace(" ", "") | Tất cả space | Tốt (mutable) |
| string.Replace | str.Replace(" ", "") | Tất cả space | Tạo chuỗi mới |
| Regex.Replace | Regex.Replace(str, @"\s+", "") | Tất cả whitespace (tab, newline...) | Chậm hơn |
| LINQ | new string(str.Where(c => !char.IsWhiteSpace(c)).ToArray()) | Tùy chỉnh | Trung bình |
| Trim | str.Trim() | Chỉ đầu/cuối | Nhanh |
Xóa tất cả whitespace (kể cả tab, newline)
// Regex - toàn diện
string clean = Regex.Replace(input, @"\s+", "");
// LINQ - không cần Regex
string clean = new string(input.Where(c => !char.IsWhiteSpace(c)).ToArray());
Lưu ý
StringBuilder.Replacesửa đổi trực tiếp buffer nội bộ - hiệu quả cho nhiều thao tác.string.Replacetrả về chuỗi mới - phù hợp cho thao tác đơn lẻ.\strong regex khớp: space, tab (\t), newline (\n, \r), form feed (\f).