Kiểm tra xem các chuỗi có bằng nhau trong Java không – làm thế nào để bằng chuỗi trong java

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 : cách cân bằng chuỗi trong java

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  Cách tạo bảng trong SQL Server bằng cách sử dụng truy vấn - sql tạo bảng từ truy vấn

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  Python yêu cầu đầu vào của người dùng (Ví dụ) - đầu vào từ python người dù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. Bằng 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  Cách kết nối CSS với tệp HTML - cách kết nối tệp css với html


Xem thêm những thông tin liên quan đến chủ đề làm thế nào để bằng chuỗi trong java

Các hàm xử lý chuỗi trong Java

  • Tác giả: Nguyễn Tuấn Linh
  • Ngày đăng: 2021-12-22
  • Đánh giá: 4 ⭐ ( 9975 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Môn học lập trình Java: Các hàm xử lý chuỗi trong Java

Tạo số và chuỗi ngẫu nhiên trong Java

  • Tác giả: topdev.vn
  • Đánh giá: 3 ⭐ ( 4916 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong Java để tạo một số ngẫu nhiên chúng ta có thể sử dụng class java.util.Random đã được hợp trong JDK nhiều kiểu random

[Tự học Java] Tìm hiểu Input and Output trong java

  • Tác giả: cafedev.vn
  • Đánh giá: 4 ⭐ ( 1804 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài viết này, bạn sẽ tìm hiểu các cách đơn giản để hiển thị output và lấy input từ người dùng bằng Java.

Trong java làm thế nào để lấy chuỗi con từ một chuỗi đến một ký tự c?

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 1233 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] nhìn vào String.indexOfvà String.substring. Đảm bảo bạn kiểm tra -1 cho indexOf.

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

  • Tác giả: www.banhoituidap.com
  • Đánh giá: 5 ⭐ ( 4845 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Làm thế nào để so sánh chuỗi trong java một cách nhanh nhất

  • Tác giả: xaydungweb.vn
  • Đánh giá: 3 ⭐ ( 8831 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: So sánh chuỗi trong java là một trong những từ khóa được search nhiều nhất trên google về chủ đề so sánh chuỗi trong java. Trong bài viết này, xaydungweb.vn sẽ viết bài viết nói về làm thế nào để so sánh chuỗi trong java một cách nhanh nhất

LÀM THẾ NÀO ĐỂ CHUYỂN ĐỔI CHUỖI THÀNH NGÀY THÁNG TRONG JAVA. LẬP TRÌNH JAVA

  • Tác giả: vi.ichlese.at
  • Đánh giá: 5 ⭐ ( 9692 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này sẽ giới thiệu cho bạn các cách mà bạn có thể chuyển đổi Chuỗi thành Ngày trong Java và cũng cung cấp cho bạn một minh chứng thực tế kỹ lưỡng.

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