Chuỗi trong C#

0
697

Trong C #, bạn có thể sử dụng chuỗi là mảng các ký tự. Tuy nhiên, người ta thường sử dụng từ khóa string để khai báo một biến chuỗi. Để sử dụng từ khóa string, bạn cần khai báo thư viện System.String.

Tạo một đối tượng chuỗi

Bạn có thể tạo đối tượng chuỗi bằng một trong những phương pháp sau đây:

  • Bằng cách gán một chuỗi ký tự cho 1 biến string
  • Bằng cách sử dụng một lớp khởi tạo string
  • Bằng cách sử dụng toán tử nối chuỗi (+)
  • Bằng cách sử sụng một property hoặc gọi một phương thức trả về một chuỗi
  • Bằng cách gọi một phương thức thực hiện việc chuyển đổi một giá trị hoặc một đối tượng về dạng chuỗi

Đây là ví dụ minh họa cho các cách tạo chuỗi trên:

using System;
namespace StringApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         //TAO CHUOI KY TU BANG BIEN VA NOI CHUNG LAI
         string fname, lname;
         fname = "Au Duong";
         lname = "Van Hieu";
         
         string fullname = fname + Lname;
         Console.WriteLine("Ho va ten: {0}", fullname);
         
         //SU DUNG HAM KHOI TAO
         char[] letters = { 'H', 'e', 'l', 'l','o' };
         string greetings = new string(letters);
         Console.WriteLine("Loi chao: {0}", greetings);
         
         //DUNG PHUONG THUC TRA VE CHUOI
         string[] sarray = { "Hello", "From", "Oktot" };
         string message = String.Join(" ", sarray);
         Console.WriteLine("Message: {0}", message);
         
         //DUNG PHUONG THUC CHUYEN GIA TRI SANG CHUOI
         DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
         string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);
         Console.WriteLine("Message: {0}", chat);
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, ta thu được kết quả như sau:

Ho va ten: Au Duong Van Hieu
Loi chao: Hello
Message: Hello From Oktot
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012

Các thuộc tính của lớp string

Lớp String có hai thuộc tính sau:

Stt Thuộc tính
1 Chars

Đối tượng Char tại một vị trí xác định trong String là một ký tự.

2 Length

Số ký tự trong một chuỗi.

Các phương thức của lớp String

Lớp String có nhiều phương thức giúp bạn làm việc với các đối tượng chuỗi. Bảng dưới đây cung cấp một số phương thức thường được sử dụng nhất:

Stt Phương thức
1 public static int Compare(string strA, string strB)

So sánh hai đối tượng chuỗi và trả về một số nguyên cho biết vị trí của chuỗi A khi sắp xếp 2 chuỗi

2 public static int Compare(string strA, string strB, bool ignoreCase )

So sánh hai đối tượng chuỗi và trả về một số nguyên cho biết vị trí của chuỗi A khi sắp xếp 2 chuỗi. Tuy nhiên, nó bỏ qua trường hợp này nếu tham số Boolean là true.

3 public static string Concat(string str0, string str1)

Nối hai đối tượng chuỗi.

4 public static string Concat(string str0, string str1, string str2)

Nối ba đối tượng chuỗi.

5 public static string Concat(string str0, string str1, string str2, string str3)

Nối bốn đối tượng chuỗi.

6 public bool Contains(string value)

Trả về một giá trị chỉ định nếu chuỗi chỉ  định xuất hiện trong chuỗi hiện hành.

7 public static string Copy(string str)

Tạo một chuỗi mới giống như chuỗi chỉ định.

8 public void CopyTo(int vitridau, char[] bienluutru, int vitricuoi, int dem)

Sao chép một số ký tự từ một vị trí của chuỗi đến một vị trí xác định trong mảng các ký tự Unicode.

9 public bool EndsWith(string value)

Xác định xem phần kết thúc của một chuỗi có giống với chuỗi chỉ định.

10 public bool Equals(string value)

Xác định xem chuỗi hiện hành và chuỗi chỉ định có cùng giá trị không.

11 public static bool Equals(string a, string b)

Xác định xem 2 chuỗi chỉ định có giá trị giống nhau không.

12 public static string Format(string format, Object arg0)

Thay thế một hoặc nhiều mục định dạng trong một chuỗi chỉ định bằng chuỗi đại diện.

13 public int IndexOf(char value)

Trả về vị trí dựa trên sự xuất hiện đầu tiên của ký tự Unicode cụ thể trong chuỗi hiện hành.

14 public int IndexOf(string value)

Trả về vị trí dựa trên sự xuất hiện đầu tiên của chuỗi chỉ định trong chuỗi hiện hành.

15 public int IndexOf(char value, int startIndex)

Trả về vị trí dựa trên sự xuất hiện đầu tiên của ký tự Unicode cụ thể trong chuỗi hiện hành, bắt đầu tìm kiếm ở vị trí ký tự quy định.

16 public int IndexOf(string value, int startIndex)

Trả về vị trí dựa trên sự xuất hiện đầu tiên của chuỗi chỉ định trong chuỗi hiện hành, bắt đầu tìm kiếm ở vị trí ký tự chỉ định.

17 public int IndexOfAny(char[] anyOf)

Trả về vị trí dựa trên sự xuất hiện đầu tiên trong chuỗi hiện hành của mọi  ký tự trong một mảng ký tự Unicode được chỉ định.

18 public int IndexOfAny(char[] anyOf, int startIndex)

Trả về vị trí dựa trên sự xuất hiện đầu tiên trong chuỗi hiện hành của mọi ký tự  trong một mảng ký tự Unicode được chỉ định, bắt đầu tìm kiếm ở vị trí ký tự cho trước.

19 public string Insert(int startIndex, string value)

Trả về một chuỗi mới, trong đó một chuỗi xác định được chèn vào một vị trí chỉ định trong đối tượng chuỗi hiện.

20 public static bool IsNullOrEmpty(string value)

Cho biết chuỗi chỉ định là null hoặc một chuỗi rỗng.

21 public static string Join(string separator, params string[] value)

Nối tất cả các phần tử của một mảng chuỗi, bằng cách sử dụng dấu cách  giữa mỗi phần tử.

22 public static string Join(string separator, string[] value, int startIndex, int count)

Nối các phần tử cụ thể của một mảng chuỗi, bằng cách sử dụng dấu cách  giữa mỗi phần tử.

23 public int LastIndexOf(char value)

Trả về vị trí dựa trên sự xuất hiện cuối cùng của các ký tự Unicode cụ thể trong các đối tượng chuỗi hiện hành.

24 public int LastIndexOf(string value)

Trả về vị trí dựa trên sự xuất hiện cuối cùng của một chuỗi cụ thể trong các đối tượng chuỗi hiện tại.

25 public string Remove(int startIndex)

Loại bỏ tất cả các ký tự trong chuỗi hiện tại, bắt đầu tại một vị trí xác định và tiếp tục đến vị trí cuối cùng, rồi trả về chuỗi.

26 public string Remove(int startIndex, int count)

Loại bỏ một sô ký tự trong chuỗi hiện tại, bắt đầu từ một vị trí xác định và trả về chuỗi.

27 public string Replace(char oldChar, char newChar)

Thay thế tất cả các lần xuất hiện của một ký tự Unicode cụ thể trong các đối tượng chuỗi hiện tại bằng các ký tự Unicode chỉ định và trả về chuỗi mới.

28 public string Replace(string oldValue, string newValue)

Thay thế tất cả các lần xuất hiện của một chuỗi chỉ định trong đối tượng chuỗi hiện hành bằng chuỗi chỉ định và trả về chuỗi mới.

29 public string[] Split(params char[] separator)

Trả về một mảng chuỗi chứa chuỗi con trong chuỗi hiện tại, giới hạn bởi các phần tử của một mảng ký tự Unicode chỉ định.

30 public string[] Split(char[] separator, int count)

Trả về một mảng chuỗi chứa chuỗi con trong chuỗi hiện tại, giới hạn bởi các phần của một mảng ký tự Unicode chỉ định. Tham số int xác định số lượng tối đa của chuỗi con trở về.

31 public bool StartsWith(string value)

Xác định xem từ đầu đến cuối chuỗi này có giống với chuỗi chỉ định.

32 public char[] ToCharArray()

Trả về một mảng ký tự Unicode với tất cả các ký tự chuỗi hiện hành.

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

Trả về một mảng ký tự Unicode với tất cả các ký tự trong chuỗi hiện tại, bắt đầu từ vị trí chỉ định và hết chuỗi.

34 public string ToLower()

Trả về một bản sao của chuỗi này chuyển đổi thành chữ thường(không viết hoa).

35 public string ToUpper()

Trả về một bản sao của chuỗi này chuyển đổi sang chữ hoa.

36 public string Trim()

Hủy bỏ tất cả các ký tự khoảng trắng của chuỗi hiện tại.

Ví dụ

Các ví dụ dưới đây trình bày một số phương thức đã đề cập ở trên:

So sánh chuỗi:

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str1 = "This is test";
         string str2 = "This is text";

         if (String.Compare(str1, str2) == 0)
         {
            Console.WriteLine(str1 + " and " + str2 +  " la 2 chuoi giong nhau.");
         }
         else
         {
            Console.WriteLine(str1 + " and " + str2 + " la 2 chuoi khong giong nhau.");
         }
         Console.ReadKey() ;
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:

This is test and This is text la 2 chuoi khong giong nhau.

Tìm kiếm chuỗi:

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str = "This is test";
         if (str.Contains("test"))
         {
            Console.WriteLine("Tu "test" duoc tim thay trong chuoi.");
         }
         Console.ReadKey() ;
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:

Tu "test" duoc tim thay trong chuoi "This is test".

Xuất 1 phần trong chuỗi:

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string str = "Toi qua toi mo thay con ma";
         Console.WriteLine(str);
         string substr = str.Substring(20);
         Console.WriteLine(substr);
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:

con ma

Nối chuỗi:

using System;
namespace StringApplication
{
   class StringProg
   {
      static void Main(string[] args)
      {
         string[] starray = new string[]{"Down the way nights are dark",
         "And the sun shines daily on the mountain top",
         "I took a trip on a sailing ship",
         "And when I reached Jamaica",
         "I made a stop"};
         string str = String.Join("\n", starray);
         Console.WriteLine(str);
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:

Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop

 Chúc bạn thành công !

This site uses Akismet to reduce spam. Learn how your comment data is processed.