Bài 11. Chuỗi (STRING)

Chuỗi trong C#

1. Tạo một chuỗi
Cách phổ biến nhất để tạo ra một chuỗi là gán cho một chuỗi trích dẫn tức là chuỗi nằm
trong dấu ngoặc kép, kiểu chuỗi này cũng được biết như là một chuỗi hằng, khai báo như sau:
string sChuoi = “Day la chuoi hang”;

2. Tạo chuỗi dùng phương thức ToString của đối tượng

int myInt = “9”;
string intString = myInt.ToString();

3. Thao tác trên chuỗi

Phương thức Mục đích
Compare So sánh nội dung của 2 chuỗi.
CompareOrdinal Giống compare nhưng không kể đến ngôn ngữ bản địa hoặc văn hoá (as compare but doesn't take culture into account).
Format Định dạng một chuỗi chứa 1 giá trị khác và chỉ định cách mỗi giá trị nên được định dạng.
IndexOf Vị trí xuất hiện đầu tiên của 1 chuỗi con hoặc kí tự trong chuỗi.
IndexOfAny Vị trí xuất hiện đầu tiên của bất kì 1 hoặc 1 tập kí tự trong chuỗi.
LastIndexOf Giống indexof , nhưng tìm lần xuất hiện cuối cùng.
LastIndexOfAny Giống indexofAny , nhưng tìm lần xuất hiện cuối cùng.
PadLeft Canh phải chuỗi, điền chuỗi bằng cách thêm 1 kí tự được chỉ định lặp lại vào đầu chuỗi.
PadRigth Canh trái chuỗi, điền chuỗi bằng cách thêm 1 kí tự được chỉ định lặp lại vào cuối chuỗi.
Replace Thay thế kí tự hay chuỗi con trong chuỗi với 1 kí tự hoặc chuỗi con khác.
Split Chia chuỗi thành 2 mảng chuỗi con ,ngắt bởi sự xuất hiện của một kí tự nào đó.
Substring Trả về chuỗi con bắt đầu ở một vị trí chỉ định trong chuỗi.
ToLower Chuyển chuỗi thành chữ thuờng.
ToUpper Chuyển chuỗi thành chữ in.
Trim Bỏ khoảng trắng ở đầu và cuối chuỗi.

Ví dụ:

Ví dụ 1: Khai báo và sử dụng chuỗi căn bản.

class StringExample
{
   public static int Main()
   {
      string s1 = "a string";
      string s2 = s1;
      Console.WriteLine("s1 is " + s1);
      Console.WriteLine("s2 is " + s2);
      s1 = "another string";
      Console.WriteLine("s1 is now " + s1);
      Console.WriteLine("s2 is now " + s2);
      return 0;
   }
}

Ví dụ 2: Viết chương trình thực hiện

- Nhập vào tạo độ 3 điểm A,B,C trong không gian. 
- Tính độ dài 3 đoạn thẳng AB,AC,BC. 
- Kiểm tra xem A,B,C có thẳng hàng không?

namespace VD2_3diemKG
{
public struct ToaDo
{
   private int x, y, z;
   public ToaDo(int x, int y, int z)
{
this.x = x;
this.y = y;
this.z = z;
}
public int X
{
   get { return x; }
set { x = value; }
}
public int Y
{
   get { return y; }
   set { y = value; }
}
public int Z
{
   get { return z; }
   set { z = value; }
}
}
class Program
{
   static void Main(string[] args)
{
// Khai bao bien ToaDo 
ToaDo A, B, C;
double d1; // AB 
double d2; // AC 
double d3; // BC 
// Nhap toa do 3 diem
Console.WriteLine("\n Nhap toa do 3 diem: ");
A = new ToaDo(1, 2, 3);
B = new ToaDo(1, 4, 5);
C = new ToaDo(1, 5, 7);
d1 = Math.Sqrt((A.X - B.X) * (A.X - B.X) + (A.Y - B.Y) * (A.Y - B.Y) + (A.Z - B.Z) * (A.Z - B.Z));
d2 = Math.Sqrt((A.X - C.X) * (A.X - C.X) + (A.Y - C.Y) * (A.Y - C.Y) + (A.Z - C.Z) * (A.Z - C.Z));
d3 = Math.Sqrt((C.X - B.X) * (C.X - B.X) + (C.Y - B.Y) * (C.Y - B.Y) + (C.Z - B.Z) * (C.Z - B.Z));
// In do dai 3 doan thang 
Console.WriteLine("\n Do dai 3 doan thang: \n");
Console.WriteLine("\n AB : " + d1);
Console.WriteLine("\n AC : " + d2);
Console.WriteLine("\n BC : " + d3);
// Kiem tra tinh thang hang 
if (d1 + d2 == d3 || d1 + d3 == d2 || d2 + d3 == d1)
Console.WriteLine("\n 3 diem A,B,C thang hang");
else
Console.WriteLine("\n 3 diem A,B,C khong thang hang");
Console.ReadLine();
}
}
}

Ví dụ 3: Viết các hàm thực hiện 

- Nhập thông tin SV gồm: họ tên, địa chỉ, tuổi, điểm toán, lý, hóa 
- Tính điểm tổng kết 
- In thông tin sinh viên

namespace VD3_QLSinhVien
{
struct SV{
   string ht,dc; 
   int tuoi;
   float dT,dL,dH;
   public SV(string ht, string dc, int tuoi, float dt, float dl, float dh) {
       this.ht = ht;
       this.dc = dc;
       this.tuoi = tuoi;
       this.dT = dt;
       this.dL = dl;
       this.dH = dh;
   }
   public string HT {
      get { return ht; }
      set { ht = value; }
   }
   public string DC {
       get { return dc; }
       set { dc = value; }
   }
    public int TUOI {
       get { return tuoi; }
       set { tuoi = value; }
   }
   public float DT {
       get { return dT; }
       set { dT = value; }
   }
   public float DL {
       get { return dL; }
       set { dL = value; }
   }
   public float DH {
       get { return dH; }
       set { dH = value; }
   }
   public float TinhDiem() {
       return (dT+dL+dH)/3;
   }
   public void XEPLOAI() {
       string xeploai;
       float dtk = TinhDiem();
       // Xep loai sinh vien
       if (dtk < 5) xeploai = "Truot";
       else if (dtk < 6) xeploai = "Trung Binh";
       else if (dtk < 7) xeploai = "TB Kha";
       else if (dtk < 8) xeploai = "Kha";
       else if (dtk < 9) xeploai = "Gioi";
       else if (dtk < 10) xeploai = "Xuat Sac";
       else xeploai = "";
// in thong tin sinh vien 
Console.Write("\n Thong tin sinh vien: ");
Console.Write("\n - Ho ten: " + ht);
Console.Write("\n - Dia chi: " +dc);
Console.Write("\n - Tuoi: " +tuoi);
Console.Write("\n - Diem tong ket: " + dtk);
Console.Write("\n - Xep loai: " + xeploai);
}
}
class Program
{
static void Main(string[] args) {
   SV sv1 = new SV("Nguyen Minh Hien", "Ha Noi", 20, 9, 9, 9);
   sv1.XEPLOAI();
   Console.ReadLine();
}
}
}