Menu
Coddy logo textTech

String Comparison

Coddy'nin Java Journey'sinin Temeller bölümünün bir parçası — ders 70 / 73.

Java'da, dizeleri karşılaştırmak, tamsayılar veya karakterler gibi ilkel veri türlerini karşılaştırmaktan daha doğrudan değildir. Dizeleri eşitlik için karşılaştırmak üzere == operatörünü kullanamazsınız çünkü dizeler nesnelerdir ve == bellek adreslerini, içeriklerini değil karşılaştırır. Bunun yerine, dizeler içindeki gerçek karakterleri karşılaştırmak için String sınıfı tarafından sağlanan belirli yöntemleri kullanmanız gerekir.

İşte dize karşılaştırması için temel yöntemler:

  • equals(Object other): Dizesini başka bir nesneye (genellikle başka bir dizeye) karşılaştırır. Dizeler aynı karakterleri aynı sırada içeriyorsa true, aksi takdirde false döndürür. Bu yöntem büyük-küçük harfe duyarlıdır.
  • equalsIgnoreCase(String other): equals'a benzer, ancak büyük/küçük harf duyarsızdır. Dizeler aynı karakterlere sahipse, durumlarına bakılmaksızın true döndürür, aksi takdirde false.
  • compareTo(String other): İki dizeyi leksikografik olarak karşılaştırır (Unicode değerlerine göre). Dizeler eşitse 0 döndürür, ilk dize ikinciden küçükse negatif bir sayı döndürür ve ilk dize ikinciden büyükse pozitif bir sayı döndürür. Bu yöntem büyük-küçük harfe duyarlıdır.
  • compareToIgnoreCase(String other): compareTo'ya benzer, ancak büyük/küçük harf farkını yoksayar.

İşte bir örnek:

String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";

boolean eq1 = str1.equals(str2); // doğru
boolean eq2 = str1.equals(str3); // yanlış
boolean eq3 = str1.equalsIgnoreCase(str3); // doğru

int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // negatif değer
int cmp3 = str4.compareTo(str1); // pozitif değer
int cmp4 = str1.compareToIgnoreCase(str3); // 0
challenge icon

Görev

Kolay

İki string'i girdi olarak alan ve aşağıdaki karşılaştırmaları gerçekleştiren compareStrings adında bir metot oluşturun:

  1. İki string'in equals kullanarak eşit olup olmadığını kontrol eder ve sonucu yazdırır.
  2. İki string'in (büyük/küçük harf duyarsız) equalsIgnoreCase kullanarak eşit olup olmadığını kontrol eder ve sonucu yazdırır.
  3. İki string'i compareTo kullanarak karşılaştırır ve sonucu yazdırır.
  4. İki string'i (büyük/küçük harf duyarsız) compareToIgnoreCase kullanarak karşılaştırır ve sonucu yazdırır.

Girdi string'leri HELLO ve hello için örnek çıktı:

HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0

Kopya kağıdı

Java'da, dizeleri karşılaştırmak için belirli yöntemleri kullanın, bellek adreslerini karşılaştıran == operatörünü değil:

  • equals(Object other): Büyük/küçük harfe duyarlı eşitlik karşılaştırması
  • equalsIgnoreCase(String other): Büyük/küçük harfe duyarsız eşitlik karşılaştırması
  • compareTo(String other): Büyük/küçük harfe duyarlı leksikografik karşılaştırma (eşitse 0 döndürür, ilk < ikinci ise negatif, ilk > ikinci ise pozitif)
  • compareToIgnoreCase(String other): Büyük/küçük harfe duyarsız leksikografik karşılaştırma
String str1 = "hello";
String str2 = "HELLO";

boolean eq1 = str1.equals(str2); // false
boolean eq2 = str1.equalsIgnoreCase(str2); // true

int cmp1 = str1.compareTo(str2); // positive value
int cmp2 = str1.compareToIgnoreCase(str2); // 0

Kendin dene

import java.util.Scanner;

public class Main {
    public static void compareStrings(String str1, String str2) {
        // Buraya kodunuzu yazın
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
        compareStrings(str1, str2);
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler