Làm thế nào để bạn đánh đồng hai chuỗi?

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'1

Kế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ơn

Thả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

  1. Bằng cách sử dụng phương thức equals[]
  2. Bằng cách sử dụng toán tử ==
  3. 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

Kiểm tra nó ngay bây giờ

đầ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

Làm thế nào để so sánh 2 chuỗi?

Chúng ta so sánh các chuỗi bằng cách sử dụng hàm strcmp[], i. e. , strcmp[str1,str2] . Hàm này sẽ so sánh cả hai chuỗi str1 và str2. Nếu hàm trả về giá trị 0 có nghĩa là cả hai chuỗi đều giống nhau, nếu không thì các chuỗi không bằng nhau.

Tôi có thể sử dụng == để so sánh hai chuỗi không?

Bạn không nên sử dụng == [toán tử đẳng thức] để so sánh các chuỗi này vì chúng so sánh tham chiếu của chuỗi, i. e. liệu chúng có phải là cùng một đối tượng hay không. Mặt khác, phương thức equals[] so sánh xem giá trị của các chuỗi có bằng nhau hay không và không phải chính đối tượng.

Làm thế nào bạn có thể so sánh hai chuỗi đưa ra ví dụ?

Hàm strcmp[] dùng để so sánh các chuỗi [str1,str2]. Các chuỗi str1 và str2 sẽ được so sánh bằng chức năng này. Nếu hàm trả về giá trị 0, điều đó có nghĩa là các chuỗi bằng nhau, ngược lại, các chuỗi không bằng nhau

Chủ Đề