Phương pháp đơn giản nhất để so sánh hai chuỗi trong SQL là sử dụng các toán tử so sánh tiêu chuẩn [,
=
]
SELECT 'Michael' < 'Mike';
Đây là kết quả
'Michael' < 'Mike'1Kết quả của 1 có nghĩa là 'true'. Kết quả của 'false' sẽ hiển thị 0
Chúng tôi nhận được kết quả là 'false' nếu chúng tôi sử dụng toán tử so sánh >
[lớn hơn] hoặc =
[bằng]. Hãy thử nó
SELECT 'Michael' > 'Mike';'Michael' > 'Mike'0
SELECT 'Michael' = 'Mike';'Michael' = 'Mike'0
Chúng tôi nhận được 0 trong cả hai trường hợp. Như đã thảo luận ở trên, điều này có nghĩa là 'sai'
Chuỗi 'Mike
' lớn hơn 'Michael
' vì giá trị theo thứ tự bảng chữ cái của các chữ cái trong chuỗi. chữ cái đầu tiên,
SELECT 'Michael' > 'Mike';0, giống nhau cho cả hai từ, chữ cái thứ hai,
SELECT 'Michael' > 'Mike';1 cũng vậy. Nhưng chữ cái thứ ba
SELECT 'Michael' > 'Mike';2 trong '
Mike
' có giá trị lớn hơn SELECT 'Michael' > 'Mike';4, chữ cái thứ ba trong '
Michael
'. Vì vậy, 'Mike
' có giá trị tổng thể lớn hơnThảo luận
Độ nhạy trường hợp thay đổi theo phương ngữ SQL. Trong MySQL và SQL Server, phép so sánh không phân biệt chữ hoa chữ thường, trong khi ở SQLite, PostgreSQL và Oracle SQL, phép so sánh không phân biệt chữ hoa chữ thường. Trong so sánh không phân biệt chữ hoa chữ thường, trường hợp của ký tự [chữ thường hoặc chữ hoa] không quan trọng. Tuy nhiên, trong một so sánh phân biệt chữ hoa chữ thường, trường hợp của ký tự quan trọng. '_______1_______7' và 'Mike
' được coi là các chuỗi khác nhau nếu so sánh phân biệt chữ hoa chữ thường, trong khi so sánh không phân biệt chữ hoa chữ thường coi chúng là giống nhau
Các chuỗi có thể được so sánh bằng cách sử dụng hàm chuỗi hoặc không sử dụng hàm chuỗi. Đầu tiên, chúng ta sẽ xem xét cách chúng ta có thể so sánh các chuỗi với sự trợ giúp của hàm chuỗi, i. e. , strcmp[], được định nghĩa trong một chuỗi. tập tin tiêu đề h
So sánh chuỗi bằng hàm chuỗi
Hàm chuỗi được xác định trước trong một chuỗi. h tập tin tiêu đề là một hàm strcmp[]. Hàm strcmp[] coi hai chuỗi là một tham số và hàm này trả về một giá trị số nguyên trong đó giá trị số nguyên có thể bằng 0, dương hoặc âm
Cú pháp của hàm strcmp[] được đưa ra dưới đây
Trong cú pháp trên, hai tham số được truyền dưới dạng chuỗi, i. e. , str1 và str2, và kiểu trả về là int nghĩa là strcmp[] trả về một giá trị số nguyên
Hàm strcmp[] so sánh ký tự của cả hai chuỗi. Nếu ký tự đầu tiên của cả hai chuỗi giống nhau, thì quá trình so sánh này sẽ tiếp tục cho đến khi tất cả các ký tự được so sánh hoặc con trỏ trỏ đến ký tự null '\0'
Nó được sử dụng trong xác thực [bằng phương thức equals[]], sắp xếp [bằng phương thức so sánhTo[]], khớp tham chiếu [bằng toán tử ==], v.v.
Có ba cách để so sánh Chuỗi trong Java
- Bằng cách sử dụng phương thức equals[]
- Bằng cách sử dụng toán tử ==
- Bằng phương thức compareTo[]
1] Bằng cách sử dụng phương thức equals[]
Phương thức equals[] của lớp String so sánh nội dung ban đầu của chuỗi. Nó so sánh các giá trị của chuỗi cho bình đẳng. Lớp String cung cấp hai phương thức sau
- public boolean equals[Object another] so sánh chuỗi này với đối tượng đã chỉ định
- public boolean equalsIgnoreCase[String another] so sánh chuỗi này với chuỗi khác, bỏ qua chữ hoa chữ thường
So sánh chuỗi kiểm tra1. java
Kiểm tra nó ngay bây giờđầu ra
Trong đoạn mã trên, hai chuỗi được so sánh bằng phương thức equals[] của lớp String. Và kết quả được in dưới dạng giá trị boolean, đúng hoặc sai
So sánh chuỗi kiểm tra2. java
đầu ra
Trong chương trình trên, các phương thức của lớp String được sử dụng. Phương thức equals[] trả về true nếu các đối tượng Chuỗi khớp và cả hai chuỗi đều có cùng kiểu chữ. equalsIgnoreCase[] trả về true bất kể trường hợp của chuỗi
Nhấp vào đây để biết thêm về phương thức equals[]2] Bằng cách sử dụng toán tử ==
Toán tử == so sánh các tham chiếu không phải giá trị
So sánh chuỗi kiểm tra3. java
Kiểm tra nó ngay bây giờđầu ra
3] So sánh chuỗi bằng phương thức compareTo[]
Đoạn mã trên minh họa việc sử dụng toán tử == được sử dụng để so sánh hai đối tượng String
3] Bằng cách sử dụng phương thức compareTo[]
Phương thức compareTo[] của lớp Chuỗi so sánh các giá trị theo từ điển và trả về một giá trị số nguyên mô tả nếu chuỗi đầu tiên nhỏ hơn, bằng hoặc lớn hơn chuỗi thứ hai
Nếu bạn giống tôi, khi tôi mới bắt đầu sử dụng Java, tôi muốn sử dụng toán tử "==" để kiểm tra xem hai thể hiện Chuỗi có bằng nhau hay không, nhưng dù tốt hay xấu thì đó không phải là cách đúng để thực hiện trong Java
Trong hướng dẫn này, tôi sẽ trình bày một số cách khác nhau để so sánh chính xác các chuỗi Java, bắt đầu với cách tiếp cận mà tôi thường sử dụng nhất. Ở phần cuối của hướng dẫn so sánh Chuỗi Java này, tôi cũng sẽ thảo luận về lý do tại sao toán tử "==" không hoạt động khi so sánh các chuỗi Java
lựa chọn 1. So sánh Chuỗi trong Java với phương thức bằng Hầu hết thời gian [có thể là 95% thời gian] tôi so sánh các chuỗi với phương thức bằng của lớp Chuỗi Java, như thế này
________số 8_______Phương thức String equals này xem xét hai chuỗi Java và nếu chúng chứa chính xác cùng một chuỗi ký tự, thì chúng được coi là bằng nhau
Hãy xem một ví dụ so sánh nhanh Chuỗi với phương thức bằng, nếu chạy thử nghiệm sau, hai chuỗi sẽ không được coi là bằng nhau vì các ký tự không hoàn toàn giống nhau [trường hợp của các ký tự là khác nhau]
String string1 = "foo";
String string2 = "FOO";
if [string1.equals[string2]]
{
// this line will not print because the
// java string equals method returns false:
System.out.println["The two strings are the same."]
}
Tuy nhiên, khi hai chuỗi chứa cùng một chuỗi ký tự, phương thức bằng sẽ trả về true, như trong ví dụ này
String string1 = "foo";
String string2 = "foo";
// test for equality with the java string equals method
if [string1.equals[string2]]
{
// this line WILL print
System.out.println["The two strings are the same."]
}
Lựa chọn 2. So sánh chuỗi với phương thức equalsIgnoreCase
Trong một số bài kiểm tra so sánh chuỗi, bạn sẽ muốn bỏ qua việc chuỗi là chữ hoa hay chữ thường. Khi bạn muốn kiểm tra sự bằng nhau của các chuỗi theo cách phân biệt chữ hoa chữ thường này, hãy sử dụng phương thức equalsIgnoreCase của lớp String, như thế này
String string1 = "foo";
String string2 = "FOO";
// java string compare while ignoring case
if [string1.equalsIgnoreCase[string2]]
{
// this line WILL print
System.out.println["Ignoring case, the two strings are the same."]
}
Tùy chọn 3. So sánh chuỗi Java với phương thức so sánhTo
Ngoài ra còn có một cách thứ ba, ít phổ biến hơn để so sánh các chuỗi Java, và đó là với phương thức so sánh của lớp String. Nếu hai chuỗi hoàn toàn giống nhau, phương thức so sánh sẽ trả về giá trị 0 [không]. Đây là một ví dụ nhanh về cách tiếp cận so sánh Chuỗi này trông như thế nào
String string1 = "foo bar";
String string2 = "foo bar";
// java string compare example
if [string1.compareTo[string2] == 0]
{
// this line WILL print
System.out.println["The two strings are the same."]
}
Trong khi tôi đang viết về khái niệm bình đẳng này trong Java, điều quan trọng cần lưu ý là ngôn ngữ Java bao gồm một phương thức bằng trong lớp Đối tượng Java cơ sở. Bất cứ khi nào bạn đang tạo các đối tượng của riêng mình và bạn muốn cung cấp một phương tiện để xem liệu hai phiên bản của đối tượng có "bằng nhau" hay không, bạn nên ghi đè [và triển khai] phương thức bằng này trong lớp của mình [giống như cách mà ngôn ngữ Java cung cấp