Mảng VB.Net: Chuỗi, động với VÍ DỤ

Mảng là gì?

Mảng là một cấu trúc dữ liệu dùng để lưu trữ các phần tử có cùng kiểu dữ liệu. Các phần tử được sắp xếp tuần tự với phần tử đầu tiên ở chỉ số 0 và phần tử cuối cùng ở chỉ số n-1, trong đó n là tổng số phần tử trong mảng.

Cách khai báo và khởi tạo một mảng

In VB.NET, các mảng được khai báo bằng câu lệnh Dim. Ví dụ:

Dim myData() As Integer

Trong ví dụ trên, chúng ta đã định nghĩa một mảng có tên là myData và nó sẽ chứa các phần tử của kiểu dữ liệu số nguyên. Ví dụ sau đây minh họa cách chúng ta có thể khai báo một mảng để chứa các phần tử chuỗi:

Dim myData(10) As String

Chúng tôi đã xác định một mảng có tên myData để chứa 10 chuỗi.

Chúng ta có thể khởi tạo mảng tại thời điểm khai báo chúng. Ví dụ:

Dim myData() As Integer = {11, 12, 22, 7, 47, 32}

Chúng ta đã khai báo mảng myData và thêm 6 phần tử số nguyên vào đó. Điều này cũng có thể được thực hiện cho trường hợp chuỗi:

Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}

Chúng tôi đã tạo một mảng có tên là sinh viên và thêm 5 tên vào đó.

Mảng có kích thước cố định

Mảng có kích thước cố định chứa một số phần tử cố định. Điều này có nghĩa là bạn phải xác định số phần tử mà nó sẽ giữ trong quá trình định nghĩa. Giả sử bạn cần một mảng chỉ chứa 3 tên sinh viên. Bạn có thể định nghĩa và khởi tạo mảng như sau:

Dim students(0 to 2) As String 
      
students(0) = "John"
students (1) = "Alice"
students (2) = "Antony"

Chúng ta bắt đầu bằng cách khai báo một mảng chuỗi có tên là students. 0 đến 2 khai báo rằng mảng sẽ lưu trữ các phần tử từ chỉ mục 0 đến chỉ mục 2, nghĩa là chúng ta sẽ có tổng cộng 3 phần tử.

Để thêm các phần tử vào mảng, chúng ta đã sử dụng tên mảng và chỉ định chỉ mục mà phần tử sẽ được lưu trữ tại đó. Ví dụ: tên John sẽ được lưu ở chỉ số 0 của mảng, nghĩa là nó sẽ tạo thành phần tử đầu tiên của mảng. Antony sẽ là phần tử cuối cùng của mảng.

Mảng động

Đây là một mảng có thể chứa bất kỳ số phần tử nào. Kích thước mảng có thể tăng lên bất cứ lúc nào. Điều này có nghĩa là bạn có thể thêm phần tử mới vào mảng bất kỳ lúc nào chúng ta muốn. Để chứng minh điều này, trước tiên chúng ta hãy định nghĩa một mảng các số nguyên:

Dim nums() As Integer

Chúng tôi đã xác định một mảng số nguyên có tên là nums. Bây giờ bạn cần thêm hai phần tử vào mảng, đồng thời nhường chỗ cho việc thay đổi kích thước của nó. Bạn cần sử dụng câu lệnh ReDim như sau:

ReDim nums(1)
nums(0) = 12
nums(1) = 23

Mảng của chúng ta hiện có hai phần tử ở chỉ mục 0 và 1. Chúng ta cần thêm phần tử thứ ba vào chỉ mục 3 trong khi vẫn giữ nguyên hai phần tử đã có. Chúng ta có thể làm điều đó như sau:

ReDim Preserve nums(2)
nums(2) = 35

Mảng bây giờ có ba phần tử.

Truy xuất nội dung của một mảng

Truy xuất có nghĩa là truy cập vào các phần tử mảng. Để truy cập một phần tử mảng, chúng ta sử dụng chỉ mục của nó. Hãy để chúng tôi chứng minh điều này bằng cách sử dụng một ví dụ.

Bước 1) Bắt đầu bằng cách tạo một ứng dụng bảng điều khiển mới.

Bước 2) Thêm đoạn mã sau vào ứng dụng:

Module Module1
    Sub Main()

       Dim students(0 to 2) As String 

        students(0) = "John"

        students(1) = "Alice"

        students(2) = "Antony"

        Console.WriteLine("First student is {0} ", students(0))

        Console.WriteLine("Second student is {0} ", students(1))

        Console.WriteLine("Third student is {0} ", students(2))


        Console.ReadKey()

    End Sub

End Module

Bước 3) Chạy mã bằng cách nhấp vào nút Bắt đầu từ thanh công cụ. Bạn sẽ nhận được cửa sổ sau:

Truy xuất nội dung của một mảng

Chúng tôi đã sử dụng đoạn mã sau:

Truy xuất nội dung của một mảng

Giải thích mã:

  1. Tạo một mô-đun có tên Module1.
  2. Tạo thủ tục phụ chính.
  3. Tạo một mảng có tên là sinh viên để lưu trữ các phần tử chuỗi. Mảng sẽ lưu trữ các phần tử từ chỉ số 0 đến chỉ số 2, nghĩa là nó sẽ có tổng cộng 3 phần tử.
  4. Thêm tên John làm phần tử đầu tiên của mảng, nghĩa là John được lưu trữ ở chỉ mục 0.
  5. Thêm tên Alice làm phần tử thứ hai của mảng, nghĩa là Alice được lưu trữ ở chỉ mục 1.
  6. Thêm tên Antony làm phần tử thứ ba của mảng, tức là Antony được lưu ở chỉ số 2.
  7. In một số văn bản và phần tử được lưu trữ tại chỉ mục 0 của mảng sinh viên trên bảng điều khiển. Sinh viên (0) giúp chúng ta truy cập phần tử ở chỉ mục 0 của mảng có tên sinh viên.
  8. In một số văn bản và phần tử được lưu trữ tại chỉ mục 1 của mảng sinh viên trên bảng điều khiển. Sinh viên (1) giúp chúng ta truy cập phần tử ở chỉ mục 1 của mảng có tên sinh viên.
  9. In một số văn bản và phần tử được lưu trữ tại chỉ mục 2 của mảng sinh viên trên bảng điều khiển. Sinh viên (2) giúp chúng ta truy cập phần tử ở chỉ mục 2 của mảng có tên sinh viên.
  10. Tạm dừng cửa sổ bảng điều khiển để chờ hoặc người dùng thực hiện hành động đóng nó.
  11. Kết thúc thủ tục phụ.
  12. Kết thúc mô-đun.

Thêm các phần tử mới vào một mảng

Điều này chỉ xảy ra nếu bạn có một mảng động. Nếu bạn đã khai báo một mảng chiều có kích thước cố định và nó chứa đầy các phần tử mảng, bạn không thể thêm các phần tử mới vào đó. Ví dụ sau đây minh họa cách thêm các phần tử mới vào một mảng động:

Bước 1) Bắt đầu bằng cách tạo một ứng dụng bảng điều khiển mới.

Bước 2) Thêm đoạn mã sau vào ứng dụng:

Module Module1
    Sub Main()

        Dim nums() As Integer

        ReDim nums(1)
        nums(0) = 12
        nums(1) = 23

        For x = 0 To nums.Length - 1
            Console.WriteLine("Initial array element: {0}", nums(x))
        Next

        ReDim Preserve nums(2)
        nums(2) = 35

        For x = 0 To nums.Length - 1
            Console.WriteLine("Final array element: {0}", nums(x))
        Next

        Console.ReadKey()
    End Sub

End Module

Bước 3) Nhấp vào nút Bắt đầu từ thanh công cụ để chạy mã. Bạn sẽ nhận được cửa sổ sau:

Thêm các phần tử mới vào một mảng

Chúng tôi đã sử dụng đoạn mã sau:

Thêm các phần tử mới vào một mảng

Giải thích mã:

  1. Tạo một mô-đun có tên Module1.
  2. Tạo thủ tục phụ chính.
  3. Tạo một mảng có tên nums để chứa các giá trị nguyên.
  4. Chỉ rõ rằng mảng trên sẽ lưu trữ hai phần tử, tức là ở chỉ mục 0 và 1 trong khi vẫn có chỗ để thay đổi kích thước.
  5. Thêm phần tử 12 vào chỉ số 0 của mảng số.
  6. Thêm phần tử 23 vào chỉ số 1 của mảng số.
  7. Sử dụng vòng lặp for để tạo biến x giúp chúng ta lặp từ phần tử đầu tiên đến phần tử cuối cùng của mảng nums. Lưu ý rằng mảng hiện có hai phần tử là 12 và 23.
  8. In một số văn bản và các phần tử của mảng trên bảng điều khiển.
  9. Kết thúc vòng lặp for và chuyển sang phần tiếp theo của mã.
  10. Thay đổi kích thước số mảng để cho phép các phần tử có chỉ mục từ 0 đến 2. Bây giờ nó sẽ có thể lưu trữ 3 phần tử thay vì 2. Từ khóa Preserve giúp chúng ta duy trì các phần tử hiện tại của mảng, tức là 12 và 23.
  11. Thêm phần tử 35 vào chỉ mục 2 của mảng. Mảng hiện có ba phần tử, 12, 23 và 35.
  12. Sử dụng vòng lặp for để tạo biến x giúp chúng ta lặp từ phần tử đầu tiên đến phần tử cuối cùng của mảng nums. Lưu ý rằng mảng hiện có ba phần tử 12, 23 và 35.
  13. In một số văn bản và các phần tử của mảng trên bảng điều khiển.
  14. Kết thúc vòng lặp for và chuyển sang phần tiếp theo của mã.
  15. Tạm dừng cửa sổ bảng điều khiển chờ người dùng thực hiện hành động đóng nó.
  16. Kết thúc thủ tục phụ.
  17. Kết thúc mô-đun.

Xóa một mảng

Bạn nên xóa mảng sau khi thực hiện xong, chủ yếu là khi bạn đang xử lý mảng động. Điều này sẽ giúp bạn giải phóng một số không gian bộ nhớ.

Để xóa một mảng, bạn chỉ cần gọi câu lệnh Erase theo sau là tên của mảng. Ví dụ:

Dim nums(1) As Integer
        nums(0) = 12
        nums(1) = 23
Erase nums

Chúng ta đã khai báo một mảng các số nguyên có tên là nums và thêm hai phần tử vào đó. Câu lệnh Erase nums sẽ xóa mảng.

Chức năng phân chia

Hàm split do Visual Basic .NET cung cấp giúp chúng ta chia một chuỗi thành nhiều phần và giữ chúng trong một mảng. Ví dụ sau đây minh họa cách sử dụng hàm này:

Bước 1) Tạo một ứng dụng bảng điều khiển mới.

Bước 2) Thêm đoạn mã sau vào ứng dụng:

Module Module1
    Sub Main()

        Dim myarray() As String
        Dim guru99 As String
        Dim x As Integer

        guru99 = "Welcome, to, Guru99"
        myarray = Split(guru99, ", ")

        For x = LBound(myarray) To UBound(myarray)

            Console.WriteLine(myarray(x))

        Next

        Console.ReadKey()
    End Sub

End Module

Bước 3) Chạy mã bằng cách nhấp vào nút Bắt đầu từ thanh công cụ. Bạn sẽ nhận được cửa sổ sau:

Chức năng phân chia

Chúng tôi đã sử dụng đoạn mã sau:

Chức năng phân chia

Giải thích mã:

  1. Tạo một mô-đun có tên Module1.
  2. Bắt đầu thủ tục phụ chính.
  3. Tạo một mảng có tên myarray để chứa các giá trị chuỗi.
  4. Tạo một biến chuỗi có tên guru99.
  5. Tạo một biến số nguyên có tên x.
  6. Gán một chuỗi cho biến guru99.
  7. Chia Chuỗi ở trên thành nhiều phần và đặt chúng vào mảng có tên myarray. “,” (dấu phẩy) là dấu phân cách, do đó hàm phân tách sẽ sử dụng nó để đánh dấu sự kết thúc của các phần khác nhau của Chuỗi.
  8. Sử dụng biến x để lặp qua mảng có tên myarray. LBound và UBound chỉ định giới hạn dưới và giới hạn trên của mảng tương ứng.
  9. In các giá trị của mảng có tên myarray trên bảng điều khiển.
  10. Kết thúc vòng lặp for và

Chức năng tham gia

Hàm join giúp chúng ta nối nhiều mảng thành một chuỗi duy nhất. Ví dụ sau đây minh họa điều này:

Bước 1) Bắt đầu bằng cách tạo một ứng dụng bảng điều khiển mới.

Bước 2) Thêm đoạn mã sau vào ứng dụng:

Module Module1
    Sub Main()

        Dim students(0 To 2) As String

        students(0) = "John"

        students(1) = "Alice"

        students(2) = "Antony"

        Dim classmates As String


        classmates = Join(students, ", ")

        Console.WriteLine(classmates)

        Console.ReadKey()
    End Sub

End Module

Bước 3) Chạy mã bằng cách nhấp vào nút Bắt đầu trên thanh công cụ:

Chức năng tham gia

Chúng tôi đã sử dụng đoạn mã sau:

Chức năng tham gia

Giải thích mã:

  1. Tạo một mô-đun có tên Module1.
  2. Tạo thủ tục phụ chính.
  3. Tạo một mảng có tên là sinh viên để chứa 3 giá trị chuỗi.
  4. Thêm tên John vào chỉ số 0 của mảng.
  5. Thêm tên Alice vào chỉ mục 1 của mảng.
  6. Thêm tên Antony vào chỉ mục 2 của mảng.
  7. Xác định một biến có tên là bạn cùng lớp của kiểu dữ liệu chuỗi.
  8. Nối tất cả các phần tử của mảng sinh viên và phân tách chúng bằng dấu , (dấu phẩy). Kết quả của thao tác này sẽ được gán cho các bạn cùng lớp có thể thay đổi.
  9. In nội dung của biến bạn cùng lớp trên bảng điều khiển.
  10. Tạm dừng cửa sổ bảng điều khiển chờ người dùng thực hiện hành động đóng nó.
  11. Kết thúc thủ tục phụ chính.
  12. Kết thúc mô-đun.

Tổng kết

  • Mảng được sử dụng để lưu trữ các phần tử dữ liệu giống nhau loại dữ liệu.
  • Mảng động cho phép người dùng thay đổi kích thước bằng cách thêm nhiều phần tử vào đó. Bạn sử dụng lệnh ReDim để thêm các phần tử vào một mảng hiện có
  • Kích thước của một mảng có kích thước cố định không thể thay đổi.
  • Các phần tử mảng được sắp xếp bằng cách sử dụng các chỉ mục, với phần tử đầu tiên ở chỉ mục 0 và phần tử cuối cùng ở chỉ mục n-1, trong đó n là tổng số phần tử mảng.
  • Mảng có thể được xóa bằng chức năng Erase
  • Bạn có thể sử dụng các hàm tách và nối để tách hoặc nối một mảng chuỗi tương ứng