Một vài đặc điểm chính
- Có thể gán dữ liệu cho một đối tượng string bằng cách khai báo như sau:
string a = "This is a text!";
string b = new String("Hello");
- Strings là immutable - nội dung của một đối tượng chuỗi không thể thay đổi sau khi đối tượng được tạo ra. Để nối chuỗi ta sử dụng toán tử (+) điều này làm nó trông giống string có thể mutable, tuy nhiên không phải là như thế. Ví dụ:
string a = "Hello";
a += "Wolrd!";
Trình biên dịch sẽ tạo một chuỗi mới "Hello World" và gán nó cho a. Chuỗi cũ "Hello" sẽ được GC (garbage collection) thu gom.
- Toán tử [] có thể dùng để truy cập readonly các ký tự của chuỗi (Bạn không thể modify ngược lại đối tượng string). Ví dụ:
string a ="Goodbye!";
char c= a[0];
//result: c ='G'
- Một chuỗi string phải được đặt trong 2 dấu ngoặc kép hoặc @ và hai dấu ngoặc kép. Ví dụ:
string path = "C\\Program\\";
string path = @"C:\Program"
Với đường dẫn, cú pháp với @ tiện lợi hơn và giữ đúng nguyên văn của chuỗi.
- Chuỗi string có thể chứa bất kỳ ký tự nào. Trong đó có cả mã Escape.
Làm việc với Strings
Length - Độ dài
Để tính độ dài của chuỗi ta sử dụng properties Length. Kết quả được tính bao gồm cả khoảng trống.
string a = "Obtaining the Length!";
Console.WriteLine("A length = {0}",a.Length);
//Result: A length = 21
Concatenating - Nối chuỗi
Để nối chuỗi bạn có thể sử dụng toán tử (+). Tuy nhiên ta cũng có thể sử dụng phương thức Concat() để nối chuỗi.
string a = "Say";
string b = "Hello";
string c = "Wolrd!";
string[] arrayString = new string[5];
arrayString[0] = "a";
arrayString[1] = "b";
arrayString[2] = "c";
arrayString[3] = "d";
arrayString[4] = "f";
string r1 = String.Concat(a, b);
string r2 = String.Concat(a,"\t",b,"t",c); //and more..
string r3 = String.Concat(arrayString);
Console.WriteLine(r1);
Console.WriteLine(r2);
Console.WriteLine(r3);
Comparing - So sánh
Bạn có thể dùng toán tử (== hoặc !=) để so sánh hai chuỗi có giống nhau hoặc không (Bao gồm cả khoảng trống và in hoa, in thường). Tuy nhiên điều này khá hạn chế, ta có một phương thức so sánh khác đó là Compare(), kết quả trả về 0 hoặc -1 (match hoặc not match).
string a = "Hello World";
string b = "HELLO WORLD";
var result = String.Compare(a, b); //-1
var result1 = String.Compare(a, b, true); //0
var result2 = String.Compare(a, b, false); //-1
Console.WriteLine(result == 0 ? "MATCH" : "NOT MATCH"); //NOT MATCH
Console.WriteLine(result1 == 0 ? "MATCH" : "NOT MATCH"); //MATCH
Console.WriteLine(result2 == 0 ? "MATCH" : "NOT MATCH"); //NOT MATCH
String Case - In hoa, In thường
Case của ký tự trong một chuỗi string có thể là IN HOA hoăc in thường. Ta có thể sử dụng 2 phương thức ToUpper() và ToLower() để thực hiện.
string a = "Hello World";
Console.WriteLine(a.ToUpper()); //HELLO WORLD
Splitting - Tách chuỗi
Đây là phương thức cắt chuỗi dựa vào giá trị xác định được khai báo trước. Ta có thể sử dụng 3 cách split đơn giản như sau:- char[] split
- string[] split
- Regex.Split
Với char[] split:
string text = "Hello\n\rThis is a text message";
char[] split1 = { ' ', '.', ';', ',','\r','\n' };
string[] result1 = text.Split(split1);
string[] result2 = text.Split(split1, 2);
string[] result3 = text.Split(split1, 2, StringSplitOptions.RemoveEmptyEntries);
string[] result4 = text.Split(split1, StringSplitOptions.RemoveEmptyEntries);
foreach (var s in result1)
{
Console.WriteLine(s);
}
Bạn phải khai báo các ký tự để làm điểm tách của chuỗi. Kết quả in ra sẽ không bao gồm các ký tự này.
StringSplitOptions.RemoveEmptyEntries sẽ xóa đi các vị trí rỗng trong chuỗi gây ra bởi các Escape. Nó sẽ được thực thi sau khi chuỗi được tách.
Với string[] split:
string text = "Hello\n\rThis is a text message";
string[] split1 = {"\n","\r","is"};
string[] result3 = text.Split(split1, 3, StringSplitOptions.RemoveEmptyEntries);
string[] result4 = text.Split(split1, StringSplitOptions.RemoveEmptyEntries);
Với Regex.Split:
Nó cần một pattern quy định cách tách chuỗi, tuy tốc độ kém 2 cách trên nhưng bù lại khá là mạnh mẽ.
string text = "123ABCDE456FGHIJKL789MNOPQ012";
string pattern = @"\d+"; // "\\d+"
var data = Regex.Split(text, pattern);
foreach (var s in data)
{
Console.WriteLine(s);
}
Kết quả trả về là một mảng chứa các giá trị gồm chữ và nếu là số sẽ bị rỗng.
Tham khảo thêm Regular Expression Language tại MSDN
Đó chỉ là một trong các phương thức của Regex. Các phần khác chúng ta sẽ không tìm hiểu tại đây.
Trimming - Cắt tỉa chuỗi
string text = " Hell o everybody! ";
var result1 = text.Trim();
var result2 = text.TrimStart();
var result3 = text.TrimEnd();
Đây là cách đơn giản để loại bỏ khoảng trống 2 đầu của chuỗi hoặc chỉ một đầu tuy bạn.
Padding - Tạo khoảng trống
string text = "Hello";
var result1 = text.PadLeft(10);
var result2 = text.PadRight(10);
Console.WriteLine(result1);
Console.WriteLine(result2);
Replacement - Thay thế
string text = "Hello World";
var result1 = text.Replace('l', 'L');
var result2 = text.Replace("World", "Everybody");
Thay thế giá trị cũ bằng giá trị mới
Substring - Tách chuỗi con
Bạn muốn lấy một đoạn trong chuỗi thì có thể sử dụng phương pháp nayf
string text = "Hello World";
var result1 = text.Substring(6);
var result2 = text.Substring(6,5);//index và length
(editting)
Working with Strings in C#
Related Tags :.NET C# String
No comments:
Post a Comment
Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free