Strings đại diện cho chuỗi của không hoặc nhiều ký tự Unicode. Trong C#, string là một kiểu dữ liệu tham chiếu và mặc dù là kiểu tham chiếu nhưng nó hỗ trợ toán tử so sánh (!= và ==) trả về true/false điều này giúp trực quan hơn.

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)

thumbnail Working with Strings in C#

data:label.name author

premiumpng.com

Design Publisher

Download 0
No comments
Template in .PSD format

MR Laboratory License

Free for personal purpose use . More info


Buy Now This Template

No comments:

Post a Comment

Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free

Newer Post Older Post Home

Copyright © 2021 MR Laboratory All rights reserved.

Setting