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

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

Giới thiệu

Phương thức Substring() của lớp String trích xuất một đoạn con từ chuỗi hiện tại. Có hai overload: từ vị trí chỉ định đến hết chuỗi, hoặc từ vị trí chỉ định với độ dài cho trước.

Cú pháp

public string Substring(int startIndex);
public string Substring(int startIndex, int length);
  • startIndex: Vị trí bắt đầu (0-based).
  • length: Số ký tự cần lấy. Nếu bỏ qua, lấy đến hết chuỗi.

Ví dụ 1 - Substring đến cuối chuỗi

using System;

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

        Console.WriteLine("String1 = " + str1);
        Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());
        Console.WriteLine("String1 Substring từ index 4 = " + str1.Substring(4)); // "erine"

        Console.WriteLine("\nString2 = " + str2);
        Console.WriteLine("String2 ToLowerInvariant = " + str2.ToLowerInvariant());
        Console.WriteLine("String2 Substring từ index 2 = " + str2.Substring(2)); // "RS"
    }
}

Kết quả

String1 = Katherine
String1 ToUpperInvariant = KATHERINE
String1 Substring từ index 4 = erine

String2 = PQRS
String2 ToLowerInvariant = pqrs
String2 Substring từ index 2 = RS

Ví dụ 2 - Substring với độ dài xác định

using System;

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

        Console.WriteLine("String1 = " + str1);
        Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());
        Console.WriteLine("String1 Substring từ index 4, độ dài 4 = " + str1.Substring(4, 4)); // "book"

        Console.WriteLine("\nString2 = " + str2);
        Console.WriteLine("String2 ToLowerInvariant = " + str2.ToLowerInvariant());
        Console.WriteLine("String2 Substring từ index 0, độ dài 5 = " + str2.Substring(0, 5)); // "Ultra"
    }
}

Kết quả

String1 = Notebook
String1 ToUpperInvariant = NOTEBOOK
String1 Substring từ index 4, độ dài 4 = book

String2 = Ultrabook
String2 ToLowerInvariant = ultrabook
String2 Substring từ index 0, độ dài 5 = Ultra

Lưu ý quan trọng

  • Chuỗi trong .NET immutable, Substring() trả về chuỗi mới (trước .NET Core 2.1 có thể chia sẻ bộ nhớ nội bộ).
  • Ném ArgumentOutOfRangeException nếu startIndex < 0, > Length, hoặc length < 0, hoặc startIndex + length > Length.
  • Hiệu suất: .NET Core 2.1+ tối ưu Substring không copy dữ liệu ngay (span-like), nhưng code không nên phụ thuộc hành vi này.
  • Để tránh cấp phát, dùng ReadOnlySpan (.NET Core 2.1+): str.AsSpan(start, length).
  • Substring(0, len) lấy prefix, Substring(str.Length - len) lấy suffix.