So sánh với Python
Java có một giao diện được gọi là Có thể so sánh, chứa phương thức so sánhTo (). Bất kỳ lớp nào triển khai giao diện So sánh đều phải ghi đè phương thức so sánh Show
Java. lang thang. Lớp String chứa phương thức compareTo(). Phương pháp này được sử dụng để so sánh hai chuỗi theo từ điển (i. e. theo thứ tự bảng chữ cái, ví dụ, b lớn hơn a). Nó so sánh hai Chuỗi và trả về một số âm hoặc số dương hoặc số không Cú pháp so sánhTo()compareTo() trong Java được gọi bằng cách sử dụng một Đối tượng và lấy một Đối tượng khác cùng loại làm đối số. Nó trả về một số nguyên dương, số nguyên âm hoặc số không. Nó có các triển khai khác nhau cho các lớp khác nhau. Chữ ký cho phương thức chấp nhận tham số kiểu Chuỗi và so sánh nó với chuỗi hiện tại được đưa ra bên dưới
Các tham số so sánh ()compareTo() trong java chỉ lấy một Đối tượng duy nhất làm tham số để so sánh với
Ghi chú obj1 và obj2 phải thuộc cùng một lớp và lớp của chúng phải triển khai giao diện So sánh được giá trị trả về so sánh ()Loại trả lại. Hoàn thành so sánhTo () trong java trả về một giá trị số nguyên. Nó trả về một số nguyên dương nếu chuỗi1 lớn hơn chuỗi2 về mặt từ điển, âm nếu chuỗi2 lớn hơn chuỗi1 và 0 nếu cả hai bằng nhau
ngoại lệHàm so sánh () trong java đưa ra hai Ngoại lệ. Hai ngoại lệ này là ClassCastException và NullPulumException ClassCastExceptionNếu chúng ta cố gắng so sánh hai Đối tượng có kiểu dữ liệu khác nhau, thì ClassCastException sẽ bị ném Ví dụ. chúng tôi cố gắng so sánh Chuỗi và ArrayList, vì vậy chúng tôi nhận được ClassCastException Hãy để chúng tôi lấy một ví dụ trong đó chúng tôi cố gắng so sánh hai đối tượng có kiểu dữ liệu khác nhau
Phương thức so sánh () trong Java là gìJava có một giao diện được gọi là Có thể so sánh, chứa phương thức so sánhTo (). Bất kỳ lớp nào triển khai giao diện So sánh đều phải ghi đè phương thức so sánh Java. lang thang. Lớp String chứa phương thức so sánh. Phương pháp này được sử dụng để so sánh hai chuỗi từ điển. Nó so sánh hai Chuỗi và trả về một số âm, số dương hoặc số không. Nó sẽ so sánh từng ký tự một. Nếu các ký tự của chuỗi bằng nhau, nó sẽ chuyển sang ký tự tiếp theo của cả hai chuỗi Nếu tất cả các ký tự của chuỗi bằng nhau, nó sẽ trả về 0. Nếu ở bất kỳ vị trí nào các ký tự không giống nhau, nó sẽ trả về sự khác biệt trong Unicode (ASCII) của các ký tự khác nhau đầu tiên, i. e. Chuỗi1. charAt(i)-String2. charAt(i); Ví dụHãy để chúng tôi lấy hai chuỗi để hiểu cách hoạt động của phương thức so sánh bên trong Đặt string1 = "PRIYA" và string2 = "PRISHA". P, R và I bằng nhau trong cả hai chuỗi, ký tự không khớp đầu tiên xảy ra ở chỉ mục 333. Unicode của YYY là 595959 lớn hơn SSS với Unicode 535353. Vì vậy, nó sẽ trả về một số dương. Bây giờ sự khác biệt của Unicodes của YYY và SSS là 666, vì vậy đầu ra là 6 Hãy để chúng tôi xem mã cho cùng
Lưu ý. nếu string1 > string2, nó trả về số dương Ba biến thể của phương thức compareTo() trong JavaCác phương thức so sánh có ba loại, một loại lấy một đối tượng làm tham số, loại kia lấy Chuỗi làm tham số và loại thứ ba thực hiện so sánh Chuỗi bỏ qua các khác biệt về chữ hoa chữ thường Đối tượng Java so sánh với (Đối tượng khácObj)Tất cả các lớp triển khai giao diện So sánh phải ghi đè phương thức so sánh vì đây là phương thức hợp đồng của giao diện. compareTo trong java lấy một đối tượng của lớp này làm tham số và chúng ta có thể định nghĩa phương thức này để so sánh hai đối tượng theo thứ tự sắp xếp Chúng ta hãy định nghĩa một lớp Book đơn giản thực hiện một giao diện có thể so sánh được, lưu trữ các chi tiết như tên sách, tác giả, v.v. , trong đối tượng của nó và ghi đè phương thức so sánh. Chúng tôi so sánh hai cuốn sách theo năm xuất bản của họ. Nếu một cuốn sách được xuất bản sau một cuốn sách khác, nó sẽ trả về 1, nếu cuốn sách được phát hành trước một cuốn sách khác, nó sẽ trả về -1 và nếu cả hai cuốn sách được phát hành trong cùng một năm, nó sẽ trả về 0
So sánh chuỗi Java (Chuỗi chuỗi2)Lớp String trong Java định nghĩa phương thức so sánh để so sánh hai chuỗi theo từ điển i. e. theo thứ tự từ điển. Nếu một chuỗi 1 đứng trước chuỗi 2, nó trả về -1, nếu chuỗi 1 đứng sau chuỗi 2, nó trả về 1 và nếu cả hai chuỗi bằng nhau, nó trả về 0 So sánh với một chuỗi rỗngNó khác khi chúng ta khởi tạo một chuỗi rỗng và khi chúng ta gọi nó là null. Một chuỗi trống không đưa ra một ngoại lệ và trỏ đến một chuỗi có độ dài 0 hoặc không có ký tự nào, trong khi một chuỗi null không trỏ đến gì (giá trị rác) và đưa ra một ngoại lệ. Vì vậy, phương thức so sánh cũng phải có một đầu ra khác cho các chuỗi rỗng và rỗng Hãy để chúng tôi lấy một ví dụ để hiểu điều gì xảy ra khi chúng ta so sánh một chuỗi rỗng với một chuỗi không trống khác. Chúng tôi sẽ lấy ba chuỗi, trong đó một chuỗi sẽ trống và hai chuỗi còn lại có độ dài khác nhau ________số 8đầu ra Trong ví dụ trên, khi chúng ta so sánh một chuỗi rỗng với một chuỗi không rỗng, nó sẽ trả về một số âm không có gì khác ngoài độ dài của chuỗi không rỗng Ngược lại, khi chúng ta so sánh chuỗi không trống với chuỗi trống, chúng ta sẽ nhận được một số dương bằng độ dài của chuỗi không trống Do đó, bằng cách sử dụng hàm compareTo() trong Java, chúng ta có thể tìm độ dài của chuỗi bằng cách so sánh với một chuỗi rỗng vì nó trả về độ dài của chuỗi không trống với các dấu dương và âm theo vị trí của chuỗi không trống compareTo() có phân biệt chữ hoa chữ thường không?Phân biệt chữ hoa chữ thường là nơi các ký tự chữ hoa và chữ thường khác nhau. Ví dụ: 'a' và 'A' không giống nhau trong trường hợp phân biệt chữ hoa chữ thường. Phương thức so sánh sử dụng Unicode của từng ký tự trong cả hai chuỗi để so sánh. Ngoài ra, Unicode của chữ thường và chữ hoa là khác nhau. Do đó, phương thức so sánh phân biệt chữ hoa chữ thường Hãy xem xét trường hợp, trong đó chúng ta lấy một chuỗi Chữ hoa và cùng một chuỗi trong Chữ thường và so sánh chúng bằng phương thức so sánh
Phương thức so sánhToIgnoreCase() giống như phương thức so sánhTo; . e. , coi chữ thường và chữ in hoa như nhau. Phương thức này không phân biệt chữ hoa chữ thường, không giống như phương thức so sánh Xem xét một ví dụ về hai chuỗi giống nhau với các trường hợp khác nhau 3 |