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

Xóa khoảng trắng với String.Empty trong C#

Sử dụng String.Empty (hằng số chuỗi rỗng "") kết hợp StringBuilder.Replace() để xóa khoảng trắng. String.Empty rõ ý định hơn "" và tránh cấp phát chuỗi mới.

Ví dụ

StringBuilder str = new StringBuilder("Tom Hanks");
str.Replace(" ", String.Empty);  // "TomHanks"

Mã nguồn hoàn chỉnh

using System;
using System.Text;

class Demo
{
    static void Main()
    {
        StringBuilder str = new StringBuilder("Tom Hanks");
        Console.WriteLine(str.ToString());  // Tom Hanks
        
        str.Replace(" ", String.Empty);
        
        Console.WriteLine(str.ToString());  // TomHanks
        Console.ReadLine();
    }
}

Kết quả

Tom Hanks
TomHanks

String.Empty vs ""

Đặc điểmString.Empty""
Ý nghĩaRõ ràng: chuỗi rỗng cố địnhLiteral rỗng
Hiệu suấtSingleton (cùng reference)Có thể tạo mới (trước C# 7, compiler tối ưu)
Độ đọcTốt hơn (tự tài liệu)Thông thường
Compile-time constCóCó

Các cách xóa khoảng trắng

// 1. StringBuilder (mutable, hiệu quả cho nhiều replace)
sb.Replace(" ", String.Empty);

// 2. String (immutable, tạo chuỗi mới)
str = str.Replace(" ", String.Empty);

// 3. Xóa tất cả whitespace (tab, newline...)
str = Regex.Replace(str, @"\s+", String.Empty);

// 4. LINQ giữ thứ tự
str = new string(str.Where(c => !char.IsWhiteSpace(c)).ToArray());

Lưu ý

  • String.Empty là readonly static field, cùng reference trên toàn app.
  • Trong C# hiện đại, "" cũng được compiler tối ưu thành singleton.
  • StringBuilder.Replace sửa đổi in-place - hiệu quả cho chuỗi lớn, nhiều lần replace.