30/09/2018, 16:24
So sánh 2 chuỗi trong C sharp
theo em biết khi so sánh 2 chuỗi có phân biệt hoa thường thì nếu chuỗi T1 lớn hơn ,bằng,nhỏ hơn chuỗi thứ 2 sẽ ra kq >0, =0, <0 . Em viết đoạn code sau
string a = "Aa";
string b = "aa";
Console.WriteLine("{0}", String.Compare(a, b, false));
Console.Read();
A < a nhưng kết quả lại ra bằng 1. Mọi người ai chỉ giúp em với.Em cảm ơn
Bài liên quan
Nếu muốn ra 0 thì hãy dùng string.Equals. Theo mình biết thì so sánh chuỗi không có chuyện >0 hay <0 vì nó là chuỗi chứ không phải số. Nên kết quả luôn là 1 hoặc 0 hay còn có nghĩa là true hoặc false: giống hoặc không giống nhau mà thôi.
em đổi chuỗi a=aa, b=Aa thì ra kq là -1 anh ạ
Oh, anh vừa mới tìm hiểu thêm thì được biết nó có 3 kết quả:
-1: chuỗi 1 nhỏ hơn chuỗi 2
0: 2 chuỗi bằng nhau
1: chuỗi 1 lớn hơn chuỗi 2
Cái ở đây là anh không hiểu nó dựa vào cái gì để tính là lớn hay nhỏ hơn, vì theo bảng mã ascii thì a là 61 lớn A là 41 mà ta. Đứt cáp tra google thôi cũng đắm đuối.
vâng. Em tìm mãi ko ra mới phải lên đây anh ạ
mà mã ASCII naỳ khác vs C à anh. E lười quá cứ nghĩ nó giống C nên chưa tra
Compares two specified String objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.
Đại khái là nó sẽ trả về 1 số cho biết vị trí tương đối của 2 chuỗi so với nhau. Vậy theo như anh hiểu thì aa đứng sau Aa vì aa lớn hơn nên nó ra trừ -1.