Nedir bu “String args”? [Java]

Bildiğimiz üzere birçok programlama dilinde programlarımız çalışmaya “main” metoduyla (fonksiyonuyla) başlar.

Peki Java’da “main” metodunun aldığı “String[] args” parametresi nedir ve nerelerde kullanabiliriz?

Dikkatle bakarsak aslında normal bir “String” dizisi tanımının aynısıdır. Yani “main” metodumuz parametre olarak bir “String” dizisi almakta. Peki bu nerelerde kullanılabilir?

Bu dizi sayesinde programımıza, belli parametreler dahilinde hareket etmesini söyleyebiliriz. Nasıl yani?

Örneğin; programımızın çalışması için şifre belirleyebiliriz. Ne alaka şimdi? Gelin basit bir örnekle mantığını kavrayalım:

3. satırda “sifre” adında bir “String” tanımladık.

4.satırda “args” String dizisinin, tanımladığımız “sifre” String’ine eşit olup olmadığını sorguladık.

Java’da String eşitliklerini kontrol ederken “equals” adlı fonksiyondan yararlanmalıyız. “==” operatörü String’lerde çoğu zaman yanlış sonuçlar almamıza neden olabilir. Java 8 itibari ile artık “==” operatörü ile de String karşılaştırma işlemi yapılabilmektedir.

“equals” fonksiyonu “String” sınıfına ait bir String karşılaştırma fonksiyonudur. Parametre olarak “String” alıp geriye “bool” döndürür.

Java’da “String” sınıf olarak tanımlanmıştır.

java

Görüldüğü üzere programımızı artık parametresiz çalıştıramıyoruz.

gibi bir kullanımda programımız çalışmayacaktır.

Unutmadan ekleyeyim, C ve C++ dillerinde de benzer senaryoyu uygulayabiliriz.

Son olarak eklemeliyim ki; parametre sayısını arttırmamız mümkün. args’ın bir “String” dizisi olduğunu söylemiştik. Programımızı “args[0]” ve “args[1]” i kontrol edecek şekilde geliştirebiliriz. İki parametreli bir kullanımda parametreler arası boşluk koymayı unutmuyoruz.

gibi.

Referanslar:

https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html