Bu pakette bulunan sınıflar java.math paketindekilere ek özellikler katar. İncelemeye değer en önemli sınıf NumberUtils'dir. Diğer sınıflar bu sınıfın kullandığı bazı tanımlamaları içerir.
import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.math.RandomUtils; import java.math.BigDecimal; public class MathUtilsTrial { public static void main(String[] args) { //İki double değeri karşılaştır System.out.println("(FIRST > SECOND) >>> " + NumberUtils.compare(2.11, 1.11)); System.out.println("(FIRST < SECOND) >>> " + NumberUtils.compare(1.11, 2.11)); System.out.println("(FIRST == SECOND) >>> " + NumberUtils.compare(1.11, 1.11)); //Karakter katarından bir BigDecimal oluştur BigDecimal bDecimal = NumberUtils.createBigDecimal("123456789"); //Bir karakter katarının sadece sayılardan oluştuğunu doğrular System.out.println("Is Digits >>> " + NumberUtils.isDigits("123.123")); //Bir karakter katarının geçerli bir sayı ifade ettiğini doğrular System.out.println("Is Number >>> " + NumberUtils.isNumber("123.123")); //Dizinin en büyük elemanını döner System.out.println("MAX >>> " + NumberUtils.max(new double[] { 3.33, 8.88, 1.11 })); //Karakter katarını int değere çevirir. Çeviremezse öntanımlı değeri döner: 77 System.out.println("String to Int >>> " + NumberUtils.toInt("ABCD", 77)); //Rastgele sayıla üretir System.out.println("Random double >>> " + RandomUtils.nextDouble()); System.out.println("Random float >>> " + RandomUtils.nextFloat()); System.out.println("Random int >>> " + RandomUtils.nextInt()); } }
Çıktısı:
(FIRST > SECOND) >>> 1 (FIRST < SECOND) >>> -1 (FIRST == SECOND) >>> 0 Is Digits >>> false Is Number >>> true MAX >>> 8.88 String to Int >>> 77 Random double >>> 0.2720979622981403 Random float >>> 0.8221457 Random int >>> 738187848
compare() metodu, iki değer eşitse 0, ilk değer daha büyükse 1, ikinci değer daha büyükse -1 döner.
Dikkate değer bir diğer metod da createNumber()'dır. Bu metod bir karakter katarını java.lang.Number 'ın alt tiplerinden uygun olan bir tanesine dönüştürür. Daha detaylı açıklarsak, bildiğiniz gibi Java'da bütün sayısal sarıcı sınıflar (Integer, Float, Double...) java.lang.Number'ın alt sınıfıdır. createNumber() neredeyse bütün sayısal gösterimlerden anlar (int, float, double, hex, binary, octal, ...) ve bulduğu sayıyı uygun tipte döner.
Bu pakette ayrıca xxxRange kalıbında birkaç sınıf daha vardır. Bu sınıfları kullanarak double, float, int ve long tipleri için sayı aralıkları tanımlayabilir ve herhangi bir değerin bu aralıkta olup olmadığını kontrol edebilirsiniz.
Kolay Gelsin.
Hiç yorum yok:
Yorum Gönder