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

Phương thức ToCharArray() trong C#

Giới thiệu

Phương thức ToCharArray() của lớp String chuyển đổi chuỗi thành mảng ký tự Unicode (char[]). Có hai overload: copy toàn bộ chuỗi, hoặc copy một đoạn con.

Cú pháp

public char[] ToCharArray();
public char[] ToCharArray(int startIndex, int length);

Ví dụ 1 - Copy toàn bộ chuỗi

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        string str1 = "Notebook";
        string str2 = "Ultrabook";

        char[] arr1 = str1.ToCharArray();
        char[] arr2 = str2.ToCharArray();

        Console.WriteLine("String1 = " + str1);
        Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());
        Console.WriteLine("String1 Substring từ index 4 = " + str1.Substring(4, 4));
        Console.Write("Mảng ký tự String1 = ");
        for (int i = 0; i < arr1.Length; i++)
            Console.Write(" " + arr1[i]);

        Console.WriteLine("\n\nString2 = " + str2);
        Console.WriteLine("String2 ToLowerInvariant = " + str2.ToLowerInvariant());
        Console.WriteLine("String2 Substring từ index 0, độ dài 5 = " + str2.Substring(0, 5));
        Console.Write("Mảng ký tự String2 = ");
        for (int i = 0; i < arr2.Length; i++)
            Console.Write(" " + arr2[i]);
    }
}

Kết quả

String1 = Notebook
String1 ToUpperInvariant = NOTEBOOK
String1 Substring từ index 4 = book
Mảng ký tự String1 = N o t e b o o k

String2 = Ultrabook
String2 ToLowerInvariant = ultrabook
String2 Substring từ index 0, độ dài 5 = Ultra
Mảng ký tự String2 = U l t r a b o o k

Ví dụ 2 - Copy đoạn con

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        string str1 = "Welcome!";
        string str2 = "Thisisit!";

        // Copy 2 ký tự từ index 3: "co"
        char[] arr1 = str1.ToCharArray(3, 2);
        // Copy 2 ký tự từ index 2: "is"
        char[] arr2 = str2.ToCharArray(2, 2);

        Console.WriteLine("String1 = " + str1);
        Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());
        Console.WriteLine("String1 Substring từ index 4 = " + str1.Substring(4, 4));
        Console.Write("Mảng ký tự String1 = ");
        for (int i = 0; i < arr1.Length; i++)
            Console.Write(" " + arr1[i]);

        Console.WriteLine("\n\nString2 = " + str2);
        Console.WriteLine("String2 ToLowerInvariant = " + str2.ToLowerInvariant());
        Console.WriteLine("String2 Substring từ index 0, độ dài 5 = " + str2.Substring(0, 5));
        Console.Write("Mảng ký tự String2 = ");
        for (int i = 0; i < arr2.Length; i++)
            Console.Write(" " + arr2[i]);
    }
}

Kết quả

String1 = Welcome!
String1 ToUpperInvariant = WELCOME!
String1 Substring từ index 4 = ome!
Mảng ký tự String1 = c o

String2 = Thisisit!
String2 ToLowerInvariant = thisisit!
String2 Substring từ index 0, độ dài 5 = Thisi
Mảng ký tự String2 = i s

Lưu ý quan trọng

  • ToCharArray() cấp phát mảng mới mỗi lần gọi.
  • Nếu chỉ cần duyệt ký tự, dùng foreach (char c in str) hiệu quả hơn (không cấp phát mảng).
  • Để copy vào mảng có sẵn, dùng CopyTo().
  • Chuỗi trong .NET là immutable, ToCharArray tạo bản sao dữ liệu.
  • Ký tự Unicode surrogate pair (emoji, ký tự hiếm) chiếm 2 char trong mảng.