Merhabalar arkadaşlar.

Bu yazıda Java içerisinde verilen bir regex’e göre random String elde etmemizi sağlayan Generex kütüphanesinden bahsedeceğim.

İlk olarak IDE’nizde bir maven projesi açalım ve pom.xml dosyamıza şu bağımlılık kodunu ekleyerek Generex kütüphanesini projemie eklemiş olalım:

<dependency>
	<groupId>com.github.mifmif</groupId>
	<artifactId>generex</artifactId>
	<version>1.0.2</version>
</dependency>

Generex bize çeşitli opsiyonlarla random string elde etme imkanları sunuyor. Bunlardan sırası ile bahsedeceğiz.

package com.ilkaygunel.generextutorial;

import com.mifmif.common.regex.Generex;

public class GenerexExample {
	public static void main(String[] args) {
		Generex generex = new Generex("[a-zA-Z0-9-]*");
		for(int i=0;i<5;i++) {			
			String randomString = generex.random();
			System.out.println(randomString);
		}
	}
}

Yukarıdaki basit kodumuz içerisinde öncelikle new operatörü ile Generex sınıfından bir nesne üretiyoruz. Bu nesne üretme işlemi sırasında ürettireceğimiz String’lerin hangi regex’e göre olmasını istiyorsak Generex sınıfının yapılandırıcısına ilgili regex’i parametre olarak geçiriyoruz. Örneğin burada regex’imiz olan [a-zA-Z0-9-]* şeklindeki ifade a’dan z’ye küçük büyük harfler ve - işareti içerebilir demektir.

for döngüsü içerisinde de 5 kez tekrar edecek şekilde generex.random() regex’e göre üretilmiş random string’i randomString nesnemize atıyoruz ve konsola yazdırıyoruz.

Aşağıdaki ekran çıktısından görebileceğiniz gibi Generex ilgili regex’e göre 5 adet string üretti bizim için.

Yukarıdaki üretilmiş String’ler dikkat ederseniz farklı uzunluktalar fakat bize bu üretilen Stringler’in minimum ya da maximum bir uzunlukta olması ya da sabit bir uzunlukta olması gerekebilir. Generex bu durumu çözmek için random metodunu bu ihtiyaca göre genişletmiş. Örnek kodlara bakalım:

package com.ilkaygunel.generextutorial;

import com.mifmif.common.regex.Generex;

public class GenerexExample {
	public static void main(String[] args) {
		Generex generex = new Generex("[a-zA-Z0-9-]*");
		for(int i=0;i<5;i++) {			
			String randomString = generex.random(3);
			System.out.println(randomString);
		}
	}
}

Yukarıdaki kodumuzda çok ufak bir değişiklik yer alıyor. generex.random() ifadesine sadece 3 sayısını parametre olarak geçirdik. Bu da generex’e sen minimum 3 karakterden oluşan String üret demektir. random() metoduna eğer tek bir sayı geçirilirse bu minimum uzunluğu tanımlanmaktadır.

Ekran görüntüsünde gördüğümüz gibi üretilen String’ler minimum 3 karakterde oluşuyorlar.

package com.ilkaygunel.generextutorial;

import com.mifmif.common.regex.Generex;

public class GenerexExample {
	public static void main(String[] args) {
		Generex generex = new Generex("[a-zA-Z0-9-]*");
		for(int i=0;i<5;i++) {			
			String randomStringWithMinimumLength = generex.random(3,9);
			System.out.println(randomStringWithMinimumLength);			
		}
	}
}

Yukarıdaki kodumuzda da random() metoduna 2 adet sayıyı parametre olarak verdik. random() metodu 2 sayıyı parametre olarak aldığında ilk parametre minimum uzunluk ikinci parametrede maximum uzunluk olarak değerlendirilir. Bu durumda üretilen String’lerimiz minimum 3 karakter maxiumum da 9 karakter olabilecektir.

Yukarıdaki ekran çıktısı bize istediğimiz uzunluk aralığında String’ler üretildiğini gösteriyor.

package com.ilkaygunel.generextutorial;

import com.mifmif.common.regex.Generex;

public class GenerexExample {
	public static void main(String[] args) {
		Generex generex = new Generex("[a-zA-Z0-9-]*");
		for(int i=0;i<5;i++) {			
			String randomStringWithMinimumLength = generex.random(7,7);
			System.out.println(randomStringWithMinimumLength);			
		}
	}
}

Yukarıdaki kodumuzda da sabit uzunlukta String üretme işlemini örnekliyoruz. random() metoduna minimum ve maximum uzunluğu aynı verdiğimiz zaman sabit, belirli bir uzunlukta String ürettireceğiz demektir.

Yukarıdaki ekran görüntüsü de bizim istediğimiz şekilde sabit uzunlukta String üretildiğini gösteriyor. Üretilen tüm String’ler 7 hane olacak şekilde üretildiler.

Bu yazıda anlatacaklarım bu kadar arkadaşlar. Generex kütüphanesi ile Java’da regex’e göre String üretmeyi öğrenmiş olduk.

Başka bir yazıda görüşene kadar sağlıcakla kalın.

Selam ve Sevgilerimle