Trong bài viết này, chúng ta đã tìm hiểu cách tìm hai chuỗi có bằng nhau trong Java hay không. Có ba cách để kiểm tra xem hai chuỗi trong Java có bằng nhau hay không bằng toán tử ==, phương thức equals () và phương thức CompareTo ().

Bạn đang xem : java kiểm tra xem chuỗi có bằng

Tải sách này – & gt; Các vấn đề về mảng: Đối với các cuộc phỏng vấn và lập trình cạnh tranh

Trong bài viết này, chúng tôi đã khám phá cách tìm xem hai chuỗi có bằng nhau trong Java hay không. Có ba cách để kiểm tra xem hai chuỗi trong Java có bằng nhau không:

  • Bởi toán tử ==
  • Theo phương thức equals ()
  • Bằng phương thức CompareTo ()

Trước khi đi sâu vào vấn đề này, chúng ta sẽ tìm hiểu cơ bản về các chuỗi trong Java.

Giống như chúng ta sử dụng kiểu dữ liệu số nguyên và dấu phẩy động trong lập trình, Chuỗi là kiểu dữ liệu được sử dụng để biểu diễn văn bản. Nó bao gồm một tập hợp các ký tự hoặc trong java, nó là một đối tượng đại diện cho một chuỗi các ký tự có thể có khoảng trắng cũng như số.

Chuỗi phải được đặt trong dấu ngoặc kép, tức là trong “” để dữ liệu được nhận dạng là một chuỗi.

ví dụ:

  "Open", "Genus" đây là hai chuỗi khác nhau.
 

Vì chuỗi có thể chứa khoảng trắng, một câu cũng là một chuỗi.

ví dụ:

  "OpenGenus là một tổ chức mã nguồn mở" là một chuỗi.
 

Như chuỗi có thể chứa số.

ví dụ:

  "n xuất hiện 2 lần trong từ OpenGenus", "Open1" và "5678" cũng là chuỗi.
 

Các chuỗi là bất biến. Nó có nghĩa là các chuỗi là đối tượng không đổi có giá trị không thể thay đổi hoặc sửa đổi sau khi được tạo.

Tạo và lưu trữ Chuỗi

Cách chuỗi đang được lưu trữ phụ thuộc vào cách chuỗi đã được tạo.
Bất cứ khi nào bộ nhớ được cấp cho một chương trình java, JVM sẽ chia bộ nhớ thành hai phần-

1.stack- được sử dụng cho mục đích thực thi.

2.heap- được sử dụng cho mục đích lưu trữ.
Vì vậy, tại thời điểm cấp phát, JVM phân bổ một số phần của bộ nhớ heap đặc biệt cho các ký tự chuỗi được gọi là Nhóm không đổi chuỗi.

Có hai cách để tạo một chuỗi-

1. Bằng cách sử dụng chuỗi ký tự

Trong java, chuỗi ký tự được tạo bằng cách sử dụng dấu ngoặc kép.

ví dụ

  String s1 = "Chi";
 

Ở đây, trình biên dịch sẽ tạo đối tượng chuỗi có chuỗi theo nghĩa đen là “Genus” và sẽ gán nó cho cá thể chuỗi s1.
Loại đối tượng chuỗi này được lưu trữ trong Nhóm không đổi chuỗi.
Đầu tiên JVM kiểm tra nội dung của đối tượng sẽ được tạo. Nếu đối tượng có cùng giá trị đã tồn tại trong nhóm thì nó không tạo đối tượng mới và đúng hơn, nó chỉ định tham chiếu của cùng một đối tượng hiện có cho đối tượng mới. Điều đó có nghĩa là không bao giờ có thể có hai đối tượng trong nhóm có cùng nội dung hoặc giá trị.

Xem Thêm  Danh sách Python (Có ví dụ) - danh sách trong ví dụ python

Ví dụ:

  String s1 = "Chi";
String s2 = "Chi";
String s3 = "Chi";
 

Đây là ba trường hợp chuỗi có cùng giá trị “Chi”, khi đó, điều đó có nghĩa là trong không gian nhóm chỉ có một đối tượng, giả sử nó là s1 có giá trị “Chi” thì tất cả các phiên bản chuỗi còn lại, tức là s2 và s3 đều trỏ đến s1.

Nhưng, điều gì sẽ xảy ra nếu chúng ta muốn có hai đối tượng chuỗi khác nhau có cùng giá trị?

Vì vậy, câu trả lời cho tất cả những nghi ngờ của bạn là dưới đây.

2. Bằng cách sử dụng Từ khoá mới

Trong java, một đối tượng chuỗi mới được tạo bằng cách sử dụng một từ khóa mới không phụ thuộc vào việc đối tượng có cùng giá trị có tồn tại hay không.
ví dụ-

  String s4 = new String ("Chi");
String s5 = new String ("Chi");
 

Ở đây trình biên dịch sẽ tạo hai đối tượng chuỗi khác nhau s4 và s5 trong bộ nhớ, mỗi đối tượng có giá trị “Genus”.
Loại đối tượng chuỗi này được lưu trữ trong bộ nhớ heap.

Chuỗi bằng nhau

Có ba cách để kiểm tra sự bằng nhau của hai chuỗi trong java.

Nó phụ thuộc vào cơ sở nào mà chúng được so sánh, tức là trên cơ sở giá trị hoặc tham chiếu.

1. Bởi toán tử ==

Toán tử == so sánh hai đối tượng chuỗi trên cơ sở tham chiếu của chúng cho bằng nhau, tức là nó trả về true nếu hai đối tượng được so sánh có cùng địa chỉ vật lý trong bộ nhớ, nếu không nó sẽ trả về false.

Như chúng ta đã biết rằng nếu các chuỗi được tạo bằng cách sử dụng chuỗi ký tự có cùng giá trị thì chúng có cùng địa chỉ cũng như cả hai trường hợp đều tham chiếu đến cùng một đối tượng thì trong trường hợp đó toán tử == sẽ trả về true và trong trường hợp khi chuỗi mới được tạo bằng từ khóa mới thì đối tượng mới sẽ được tạo trong nonpool, sau đó nó sẽ trả về false ngay cả khi có cùng giá trị vì nó sẽ có địa chỉ khác trong bộ nhớ.

Xem Thêm  Cách tạo một trang web đáp ứng - cách thiết kế web đáp ứng

ví dụ-

  lớp CheckEquality1 {
    public static void main (String args []) {
        String s1 = "Chi";
        String s2 = "Chi";
        String s3 = new String ("Chi");
        String s4 = new String ("Chi");
        System.out.println (s1 == s2); // true (vì cả hai đều đề cập đến cùng một trường hợp tức là được tạo trong không gian nhóm)
        System.out.println (s1 == s3); // false (vì s3 đề cập đến đối tượng được tạo trong nonpool)
        System.out.println (s4 == s3); // false (vì cả hai đều đề cập đến các địa chỉ khác nhau)
    }
}
 

2. Theo phương thức equals ()

Phương thức equals () so sánh hai chuỗi trên cơ sở giá trị hoặc nội dung của chúng để bằng nhau.

Có hai phương thức được cung cấp bởi lớp String trong java:

i) String.equalsIgnoreCase ()

Phương pháp này so sánh các chuỗi bỏ qua chữ hoa (không phân biệt chữ hoa chữ thường). Nó trả về true nếu giá trị của cả hai chuỗi giống nhau, bỏ qua trường hợp này, nếu không trả về false.

ii) String.equals ()

Phương pháp này so sánh các chuỗi xét theo trường hợp (phân biệt chữ hoa chữ thường), nếu giá trị hoặc nội dung của cả hai chuỗi giống nhau khi xét trường hợp thì trả về true, còn lại trả về false.

  class CheckEquality2 {
    public static void main (String args []) {
        String s1 = "Chi";
        String s2 = new String ("Chi");
        String s3 = new String ("chi");
        System.out.println (s1.equals (s2)); // true (vì cả hai đều có cùng giá trị)
        System.out.println (s1.equals (s3)); // false (char không khớp vì 'G' không bằng 'g')
        System.out.println (s2.equals (s3)); // false (char không khớp vì 'G' không bằng 'g')
        System.out.println (s1.equalsIgnoreCase (s3)); // true (khi bỏ qua trường hợp)
        System.out.println (s2.equalsIgnoreCase (s3)); // true (khi bỏ qua trường hợp)
    }
}
 

3. Bằng phương thức CompareTo ()

Phương thức CompareTo () so sánh hai chuỗi về mặt từ vựng và trả về 0 nếu các chuỗi bằng nhau nếu không có giá trị dương hoặc âm tùy thuộc vào việc chuỗi đầu tiên lớn hơn hay nhỏ hơn tương ứng.

Giả sử s1 và s2 là hai chuỗi.

  nếu:
s1 == s2: 0
s1 & gt; s2: dương
s1 & lt; s2: âm
 

Mỗi ký tự của cả hai chuỗi được chuyển đổi thành một giá trị Unicode để so sánh.

Giá trị được tính là (int) s1.charAt (i) – (int) s2.charAt (i).
trong đó tôi là chỉ mục cho các chuỗi.

  class CheckEquality3 {
    public static void main (String args []) {
        String s1 = "Chi";
        String s2 = "Chi";
        String s3 = "Thiên tài";
        System.out.println (s1.compareTo (s2)); // 0 (as s1 = s2)
        System.out.println (s1.compareTo (s3)); // 12 (dưới dạng s1 & gt; s3)
        System.out.println (s3.compareTo (s1)); // -12 (dưới dạng s3 & gt; s1)
    }
}
 

Với bài viết này tại OpenGenus , bạn phải có đầy đủ ý tưởng về việc kiểm tra xem các Chuỗi có bằng nhau trong Java hay không.

Xem Thêm  SQL: KHÔNG Điều kiện - không phải là 0 sql


Xem thêm những thông tin liên quan đến chủ đề java kiểm tra xem chuỗi bằng

Java Bài 9.6: Kiểm tra chuỗi có bắt đầu bằng khoảng trắng

  • Tác giả: thân triệu
  • Ngày đăng: 2021-01-30
  • Đánh giá: 4 ⭐ ( 9420 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Nội dung video này là một bài giải mẫu các bài tập trong khoá học lập trình Java từ cơ bản đến nâng cao. Kiểm tra xem chuỗi kí tự nhập vào từ bàn phím có bắt đầu bằng khoảng trắng hay không.
    ==========================
    Trang chủ: https://braniumacademy.net
    Code mẫu: https://github.com/thantrieu/Public-Exercises/blob/main/Ex6.java

Chuỗi trong Java » Cafedev.vn

  • Tác giả: cafedev.vn
  • Đánh giá: 4 ⭐ ( 6547 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Chuỗi trong Java, cách tạo chúng và các hàm khác nhau của Chuỗi với sự trợ giúp của các ví dụ.

Java 101: Kiểm tra xem một chuỗi trống hay trống

  • Tác giả: helpex.vn
  • Đánh giá: 4 ⭐ ( 8612 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong Java, một chuỗi trống và một chuỗi trống là hai khái niệm khác nhau. Luôn luôn khó hiểu và phức tạp đối với người mới bắt đầu Java khi kiểm tra xem một Chuỗi là cả hai, trống hay…

Phương thức chuỗi Java

  • Tác giả: vi.tutorialcup.com
  • Đánh giá: 3 ⭐ ( 5741 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn này cung cấp mô tả chi tiết về chuỗi trong Java, lớp chuỗi java và các phương thức chuỗi trong Java cùng với các ví dụ.

Java: Hàm xử lý chuỗi (String)

  • Tác giả: v1study.com
  • Đánh giá: 5 ⭐ ( 7155 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lớp String cung cấp khá nhiều hàm (hay phương thức) dùng cho việc thao tác chuỗi (hay xâu ký tự). Ta cần lưu ý rằng một biến chuỗi hay một hằng chuỗi thì

Chương trình Java để kiểm tra xem một chuỗi trống hay rỗng

  • Tác giả: vi.wiki-base.com
  • Đánh giá: 5 ⭐ ( 7570 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Java Bài 9.6: Kiểm tra chuỗi có bắt đầu bằng khoảng trắng

  • Tác giả: daotaobanhang.edu.vn
  • Đánh giá: 3 ⭐ ( 8974 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php