Dize Arama (String Search) Algoritması Java

Java Dizi Arama Algoritması, daha büyük bir dizi içindeki belirli bir alt diziyi aramak için kullanılan programlamada temel bir tekniktir. Bu algoritma, metin editörleri, arama motorları ve veri analiz araçları dahil olmak üzere çeşitli metin işleme uygulamalarında yaygın olarak kullanılmaktadır.

Dize Arama Algoritması Nasıl Çalışır?

Dizi Arama Algoritması, aranan alt dizenin her karakterini ana dizenin karakterleriyle karşılaştırarak çalışır. Ana dize boyunca yinelenir ve karakterleri tek tek karşılaştırarak olası bir eşleşmeyi kontrol eder. Bir eşleşme bulunursa, bu, alt dizenin ana dize içindeki başlangıç ​​konumunu gösterir.

String Arama Algoritmasının Avantajları ve Dezavantajları

Avantajları:

  • Basit Uygulama: Algoritmanın anlaşılması ve uygulanması kolaydır, bu da onu temel dize arama görevleri için uygun hale getirir.
  • Çeşitli Senaryolara Uygulanabilir: Bu algoritma, metin verileri içindeki belirli kalıpların aranmasını içeren çok çeşitli uygulamalarda kullanılabilir.

Dezavantajları:

  • Büyük Metinler İçin Verimsiz: En kötü senaryolarda, algoritmanın zaman karmaşıklığı artabilir ve bu da onu büyük metinler için verimsiz hale getirebilir.
  • Sınırlı Desen Eşleştirme: Algoritmanın temel sürümü, karmaşık desen eşleştirme gereksinimlerini karşılayamayabilir.

Örnek ve Açıklama

Bir cümledeki belirli bir kelimeyi bulmak için Dize Arama Algoritmasını kullanmanın bir örneğini ele alalım Java.

public class StringSearchExample {  
    public static int searchString(String mainString, String substring) {  
        int mainLength = mainString.length();  
        int subLength = substring.length();  
  
        for(int i = 0; i <= mainLength- subLength; i++) {  
            int j;  
  
            for(j = 0; j < subLength; j++) {  
                if(mainString.charAt(i + j) != substring.charAt(j)) {  
                    break;  
                }  
            }  
  
            if(j == subLength) {  
                return i; // Substring found at position i  
            }  
        }  
  
        return -1; // Substring not found  
    }  
  
    public static void main(String[] args) {  
        String text = "The quick brown fox jumps over the lazy dog";  
        String search = "fox";  
  
        int position = searchString(text, search);  
  
        if(position != -1) {  
            System.out.println("Substring found at position: " + position);  
        } else {  
            System.out.println("Substring not found");  
        }  
    }  
}  

Bu örnekte, algoritma verilen metin içinde "fox" alt dizesini arar. Metnin her karakterini yineleyerek onu alt dizenin karakterleriyle karşılaştırır. Bir eşleşme bulunduğunda algoritma, metindeki alt dizenin başlangıç ​​konumunu döndürür.

Bu, Dizi Arama Algoritmasının daha büyük metin verileri içindeki alt dizileri nasıl bulabildiğini gösterir ve bu da onu programlamada metin manipülasyonu ve analizi için önemli bir teknik haline getirir Java.