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

Trang Tuân viết 18:30 ngày 30/09/2018

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.

do it myself viết 18:39 ngày 30/09/2018

em đổi chuỗi a=aa, b=Aa thì ra kq là -1 anh ạ

Trang Tuân viết 18:29 ngày 30/09/2018

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.

do it myself viết 18:25 ngày 30/09/2018

vâng. Em tìm mãi ko ra mới phải lên đây anh ạ

do it myself viết 18:37 ngày 30/09/2018

mà mã ASCII naỳ khác vs C à anh. E lười quá cứ nghĩ nó giống C nên chưa tra

Trang Tuân viết 18:39 ngày 30/09/2018

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.

Bài liên quan
0