Dize Karşılaştırma
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çeriyorsatrue, aksi takdirdefalsedö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ıntruedöndürür, aksi takdirdefalse.
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); // 0Gö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:
- İki string'in
equalskullanarak eşit olup olmadığını kontrol eder ve sonucu yazdırır. - İki string'in (büyük/küçük harf duyarsız)
equalsIgnoreCasekullanarak eşit olup olmadığını kontrol eder ve sonucu yazdırır. - İki string'i
compareTokullanarak karşılaştırır ve sonucu yazdırır. - İki string'i (büyük/küçük harf duyarsız)
compareToIgnoreCasekullanarak 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: 0Kendin 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);
}
}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
4Operatörler Bölüm 1
Aritmetik OperatörlerModülo OperatörüArtırma/AzaltmaSonsal Artırma/AzaltmaAritmetik Kısa YollarKarşılaştırma OperatörleriDizge Karşılaştırması7Temel G/Ç
System.out MetotlarıÇıktıyı BiçimlendirmeScanner SınıfıTekrar - 120'ye KadarTekrar - Doğru mu Yanlış mı5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Tekrar - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 4Kendi başına pratik yap: Online Java derleyicisi