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

Thuộc tính StringBuilder.Chars[] trong C#

Giới thiệu

Thuộc tính indexer Chars[int index] (viết tắt this[int index]) của StringBuilder cho phép đọc hoặc ghi ký tự tại vị trí chỉ định. Cho phép truy cập ngẫu nhiên O(1) vào bộ đệm ký tự nội bộ.

Cú pháp

public char this[int index] { get; set; }

Ví dụ 1 - Đếm chữ số trong chuỗi

using System;
using System.Text;

public class Demo
{
    public static void Main()
    {
        StringBuilder strBuilder = new StringBuilder("ghgh78hkjj");
        int num = 0;

        for (int i = 0; i < strBuilder.Length; i++)
        {
            char c = strBuilder[i];
            if (Char.IsDigit(c))
                num++;
        }

        Console.WriteLine("Chuỗi = " + strBuilder);
        Console.WriteLine("Số lượng chữ số trong chuỗi = " + num);
    }
}

Kết quả

Chuỗi = ghgh78hkjj
Số lượng chữ số trong chuỗi = 2

Ví dụ 2 - Đọc và ghi ký tự

using System;
using System.Text;

public class Demo
{
    public static void Main()
    {
        StringBuilder strBuilder = new StringBuilder("ghgh78hkjj");
        char c = strBuilder[3]; // Đọc ký tự tại index 3
        Console.WriteLine("Chuỗi = " + strBuilder);
        Console.WriteLine("Ký tự tại index 3 = " + c);

        // Ghi đè ký tự
        strBuilder[3] = 'X';
        Console.WriteLine("Chuỗi sau khi thay đổi = " + strBuilder);
    }
}

Kết quả

Chuỗi = ghgh78hkjj
Ký tự tại index 3 = h
Chuỗi sau khi thay đổi = ghgX78hkjj

Lưu ý quan trọng

  • Indexer cho phép cả đọc và ghi (khác với string immutable chỉ đọc).
  • Ném IndexOutOfRangeException nếu index < 0 hoặc >= Length.
  • Độ dài Length có thể thay đổi (Append, Remove, Insert), indexer luôn phản ánh trạng thái hiện tại.
  • Ký tự Unicode surrogate pair (emoji) chiếm 2 vị trí index.
  • Hiệu suất O(1) cho truy cập ngẫu nhiên, phù hợp cho thuật toán thao tác chuỗi phức tạp.