Phương thức chuỗi con VB.NET với EXAMPLE
⚡ Tóm tắt thông minh
Ví dụ về chuỗi con trong VB.NettracPhương thức này trích xuất một phần của chuỗi bằng cách chỉ định chỉ mục bắt đầu và độ dài tùy chọn. Phương thức này thuộc lớp String, đếm ký tự từ 0 và trả về một chuỗi hoàn toàn mới mà không làm thay đổi chuỗi gốc.

Chuỗi con là gì?
Hàm Substring được sử dụng để lấy một phần của chuỗi được chỉ định. Phương thức này được định nghĩa trong lớp String của Microsoft VB.NetBạn phải chỉ định chỉ mục bắt đầu mà từ đó chuỗi sẽ được lấy ra.tracted. Chuỗi sẽ được extracĐược tạo từ chỉ mục đó cho đến độ dài mà bạn chỉ định.
Trước khi cũtracKhi đọc văn bản, điều đó giúp hiểu cú pháp mà phương thức Substring yêu cầu.
Cú pháp của chuỗi con
Hàm này chấp nhận hai đối số như được hiển thị trong cú pháp sau:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Ở đây,
- Từ khóa ByVal biểu thị từng giá trị, là một cơ chế truyền đối số cho hàm.
- start_Index là chỉ số mà từ đó chuỗi con sẽ được lấy.
- sub_length biểu thị độ dài tối đa mà chuỗi sẽ được sao chép từ start_Index. Độ dài này được đo bằng số ký tự. Hàm sẽ trả về giá trị extracchuỗi con ted.
Chỉ số bắt đầu được tính từ 0, do đó ký tự đầu tiên của chuỗi nằm ở vị trí 0 chứ không phải vị trí 1.
Với cú pháp đã được định nghĩa, các ví dụ sau đây minh họa cách thức hoạt động của phương thức Substring trong một ứng dụng dòng lệnh.
Các ví dụ
Bước 1) Tạo một ứng dụng console mới.
Bước 2) Thêm đoạn mã sau vào đó:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Bước 3) Nhấp vào nút Bắt đầu trên thanh công cụ để thực thi mã. Bạn sẽ nhận được kết quả như sau:
Chúng tôi đã sử dụng đoạn mã sau:
Giải thích về Code:
- Tạo một mô-đun có tên Module1.
- Bắt đầu thủ tục phụ chính.
- Định nghĩa một biến chuỗi có tên là st và gán giá trị cho nó. Guru99 đến nó.
- Định nghĩa một biến chuỗi có tên 'subst' là một chuỗi con của chuỗi 'st' bắt đầu từ chỉ mục 0 và có độ dài 4 ký tự.
- In một số văn bản và chuỗi con trên trên bảng điều khiển.
- Tạm dừng cửa sổ console một lúc để chờ người dùng thực hiện thao tác đóng nó lại.
- Kết thúc thủ tục phụ chính.
- Kết thúc mô-đun.
Một lý lẽ
Điều gì sẽ xảy ra nếu chúng ta chỉ truyền một đối số cho hàm? Hàm sẽ sao chép tất cả dữ liệu trong Chuỗi bắt đầu từ chỉ mục đó. Điều xảy ra là hàm Chuỗi con sao chép nội bộ tất cả dữ liệu chuỗi tại chỉ mục đó cũng như dữ liệu chuỗi theo sau chỉ mục đó. Ví dụ:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Nhấp vào nút Bắt đầu để chạy mã. Nó sẽ trả về kết quả sau:
Hàm Substring trả về 99. Chúng ta đã truyền tham số 4 cho hàm, có nghĩa là nó sẽ bắt đầu thực thi.tract là chuỗi con từ ký tự ở vị trí thứ 4 đến cuối chuỗi. 9 là ký tự ở vị trí thứ 4 của chuỗi. Guru99, do đó là extracSự việc bắt đầu từ đó.
Ngoài việc cắt bỏ phần tử từ một chỉ mục duy nhất, phương thức Substring cũng có thể nhắm mục tiêu vào các ký tự ở giữa chuỗi.
Nhân vật trung gian
Chúng ta cũng có thể lấy các ký tự ở giữa của Chuỗi đang xét. Trong trường hợp này, chúng ta chỉ cần cung cấp chỉ mục bắt đầu và độ dài của Chuỗi mà chúng ta cần. Trong ví dụ sau, chúng ta sẽ lấy một chuỗi con của Chuỗi đã chỉ định từ chỉ mục 2 và Chuỗi sẽ có độ dài là 2 ký tự:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Nhấp vào nút Bắt đầu từ thanh công cụ để chạy mã. Bạn sẽ nhận được kết quả sau:
Trong ví dụ trên, hàm Substring trả về ru. Chúng ta đã truyền các tham số (2, 2) cho hàm. Số 2 đầu tiên hướng dẫn hàm bắt đầu tìm kiếm.tracviệc lấy chuỗi con từ chỉ mục 2 trong khi chỉ mục 2 thứ hai hướng dẫn hàm trả về một chuỗi con chỉ có độ dài 2 ký tự. Điều này có nghĩa là ví dụtracViệc trích xuất chuỗi con nên bắt đầu từ phần tử nằm ở vị trí chỉ mục 2 của chuỗi. Guru99, tức là r. Vì chuỗi con trả về chỉ nên có độ dài 2 ký tự, nên ví dụtraction sẽ không vượt qua được ký tự 'u', do đó nó trả về 'ru'.
Một Char
Chúng ta có thể sử dụng hàm Substring để lấy một ký tự đơn lẻ từ một chuỗi. Trong trường hợp như vậy, bạn cần phải phân bổ nhưng có thể truy cập trực tiếp ký tự đó. Cách này nhanh hơn một chút. Ví dụ sau đây minh họa hai cách để chúng ta có thể thực hiện điều này:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
Nhấp vào nút Bắt đầu để chạy mã. Bạn sẽ nhận được kết quả sau:
Chúng tôi đã sử dụng đoạn mã sau:
Giải thích về Code:
- Tạo một mô-đun có tên Module1.
- Bắt đầu thủ tục phụ chính.
- Định nghĩa một biến chuỗi có tên là st và gán giá trị cho nó. Guru99 đến nó.
- Xác định biến chuỗi có tên mid1 và lấy ký tự ở chỉ mục 1 của Chuỗi st. Ký tự này sẽ được gán cho biến mid1.
- In ký tự trên trên bàn điều khiển.
- Xác định biến chuỗi có tên mid2 và lấy ký tự ở chỉ mục 1 có độ dài 1 từ Chuỗi st. Độ dài 1 có nghĩa là nó sẽ trả về cùng một ký tự ở chỉ mục bắt đầu. Việc đếm bắt đầu từ chỉ mục bắt đầu mà bạn chỉ định. Ký tự này sẽ được gán cho biến mid2.
- In ký tự trên trên bàn điều khiển.
- Tạm dừng cửa sổ console một lúc để chờ người dùng thực hiện thao tác đóng nó lại.
- Kết thúc thủ tục phụ chính.
- Kết thúc mô-đun.
Khi bạn đã cảm thấy thoải mái,tracKhi xử lý các chuỗi con, điều đáng lưu ý là cần biết cách xử lý các lỗi mà phương thức này có thể gây ra.
Các lỗi thường gặp khi cắt chuỗi con và cách tránh chúng.
Phương thức Substring rất khắt khe về các giá trị bạn truyền vào. Khi một đối số nằm ngoài phạm vi của chuỗi, VB.Net sẽ ném ra ngoại lệ ArgumentOutOfRangeException và dừng chương trình tại thời điểm chạy. Hiểu rõ các quy tắc sẽ giúp bạn tránh được lỗi thường gặp này.
Phương thức này sẽ gây ra ngoại lệ trong ba trường hợp:
- start_Index là một số âm.
- Chỉ số bắt đầu (start_Index) lớn hơn độ dài của chuỗi.
- Tổng của start_Index và sub_length trỏ đến vị trí vượt quá cuối chuỗi.
Một lỗi thường gặp là sử dụng kết quả của hàm IndexOf mà không kiểm tra trước. Khi IndexOf không tìm thấy ký tự, nó sẽ trả về -1, và việc truyền -1 cho Substring sẽ gây ra ngoại lệ. Đoạn mã sau đây giúp tránh điều đó:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
Việc xác thực chỉ mục trước khi gọi hàm giúp ứng dụng của bạn hoạt động trơn tru, ngay cả khi chuỗi đầu vào không chứa ký tự bạn mong đợi.
Lấy một chuỗi con trước hoặc sau một ký tự
Một nhiệm vụ phổ biến là...tracTìm kiếm đoạn văn bản xuất hiện trước hoặc sau một ký tự cụ thể, chẳng hạn như tách địa chỉ email tại ký hiệu @. VB.Net không cung cấp hàm chuyên dụng cho việc này, nhưng bạn có thể kết hợp IndexOf với Substring để thực hiện.
Văn bản trước một ký tự: Gọi hàm IndexOf để định vị ký tự, sau đó truyền chỉ số đó làm độ dài cho hàm Substring:
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
Đoạn mã này in ra guru99, phần chuỗi nằm trước dấu @.
Văn bản sau một ký tự: Cộng thêm 1 vào chỉ số và cho phép Substring chạy đến cuối chuỗi:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Thao tác này trả về example.com. Khi một ký tự xuất hiện nhiều hơn một lần, hãy sử dụng LastIndexOf thay cho IndexOf để bắt đầu từ lần xuất hiện cuối cùng thay vì lần đầu tiên.
So sánh chuỗi con với các hàm Left, Right và Mid
Visual Basic kế thừa ba hàm xử lý chuỗi cũ từ các phiên bản trước: Left, Right và Mid. Chúng nằm trong... MicrosoftKhông gian tên .VisualBasic có thể quen thuộc hơn với các nhà phát triển đến từ VB cổ điển.
- Trái (chuỗi, n) Trả về n ký tự đầu tiên của một chuỗi.
- Phải(chuỗi, n) Trả về n ký tự cuối cùng của một chuỗi.
- Giữa (chuỗi, bắt đầu, độ dài) Trả về một phần từ vị trí bắt đầu, tương tự như hàm Substring.
Điểm khác biệt chính nằm ở cách chúng đếm vị trí. Hàm Mid sử dụng chỉ số từ 1, vì vậy ký tự đầu tiên nằm ở vị trí 1, trong khi phương thức Substring sử dụng chỉ số từ 0 và bắt đầu đếm từ 0. Substring là phương pháp chuẩn của .NET và hoạt động giống nhau trên mọi ngôn ngữ .NET, vì vậy đây là lựa chọn được khuyến nghị cho mã mới. Hãy dành các hàm Left, Right và Mid để bảo trì các dự án Visual Basic cũ hơn.






