Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Xóa khoảng trắng trong chuỗi C#

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áchCodePhạm viHiệu suất
StringBuilder.Replacesb.Replace(" ", "")Tất cả spaceTốt (mutable)
string.Replacestr.Replace(" ", "")Tất cả spaceTạo chuỗi mới
Regex.ReplaceRegex.Replace(str, @"\s+", "")Tất cả whitespace (tab, newline...)Chậm hơn
LINQnew string(str.Where(c => !char.IsWhiteSpace(c)).ToArray())Tùy chỉnhTrung bình
Trimstr.Trim()Chỉ đầu/cuốiNhanh

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.Replace sửa đổi trực tiếp buffer nội bộ - hiệu quả cho nhiều thao tác.
  • string.Replace trả về chuỗi mới - phù hợp cho thao tác đơn lẻ.
  • \s trong regex khớp: space, tab (\t), newline (\n, \r), form feed (\f).