- Konu sahibi
- #1
Java’da sayısal bir
Aşağıdaki örneği
Program
Kullanıcıdan gelen bir değer için hatayı yakalayarak yeniden giriş isteyebilirsiniz. Aşağıdaki örnek, önce
Bu kodu bir metodun içine yerleştirdiğinizde örnek girdi için
İlkel
Metin onluk değilse tabanı ikinci argüman olarak belirtin. Örneğin
String değerini int türüne çevirmek için Integer.parseInt(metin) kullanın. Metin geçerli bir tam sayı içeriyorsa yöntem sayısal değeri döndürür; içerik uygun değilse veya sayı int aralığını aşıyorsa NumberFormatException oluşur.String değerini sayıya dönüştürme
Aşağıdaki örneği
Main.java adlı dosyaya kaydedin. JDK kurulu bir ortamda javac Main.java ve ardından java Main komutlarını çalıştırın:
Java:
public class Main {
public static void main(String[] args) {
String metin = "42";
int sayi = Integer.parseInt(metin);
System.out.println(sayi + 1);
}
}
Program
43 yazdırır: "42" metni önce sayıya çevrilir, sonra üzerine 1 eklenir. Integer için ayrıca import satırı gerekmez. Yöntem varsayılan olarak onluk sayı sistemini kullanır ve baştaki + veya - işaretini kabul eder.Geçersiz girdileri ele alma
"12a", boş metin ve "3.5" gibi tam sayı olmayan değerler dönüştürülemez. Baştaki veya sondaki boşluklar da doğrudan kabul edilmez. Ayrıca değer, -2147483648 ile 2147483647 arasında olmalıdır. Daha büyük bir tam sayı bekliyorsanız uygun aralığa sahip long türünü ve Long.parseLong() yöntemini değerlendirin.Kullanıcıdan gelen bir değer için hatayı yakalayarak yeniden giriş isteyebilirsiniz. Aşağıdaki örnek, önce
null kontrolü yapar; ardından trim() ile baştaki ve sondaki sıradan boşlukları temizler:
Java:
String girdi = " 42 "; // Örnek girdi
if (girdi == null) {
System.out.println("Bir değer girin.");
} else {
try {
int sayi = Integer.parseInt(girdi.trim());
System.out.println("Girilen sayı: " + sayi);
} catch (NumberFormatException e) {
System.out.println("Geçerli ve int aralığında bir tam sayı girin.");
}
}
Bu kodu bir metodun içine yerleştirdiğinizde örnek girdi için
Girilen sayı: 42 yazdırılır. Girdiyi "12a" yaparsanız hata mesajı görünür; kullanıcıdan değeri düzeltmesini isteyebilirsiniz. Boşlukları temizlemek içteki boşlukları, ondalık ayırıcıları veya sayı aralığı sorununu düzeltmez. Başarılı dönüşüm de sayının uygulamanızın izin verdiği aralıkta olduğunu tek başına göstermez; gerekiyorsa bu koşulu ayrıca kontrol edin.Integer nesnesi veya farklı sayı tabanı gerektiğinde
İlkel
int yerine bir Integer nesnesi gerekiyorsa Integer.valueOf("42") kullanabilirsiniz. Bu yöntem de geçersiz veya aralık dışı metin için NumberFormatException oluşturur.Metin onluk değilse tabanı ikinci argüman olarak belirtin. Örneğin
Integer.parseInt("FF", 16), on altılık FF değerini onluk gösterimde 255 olarak döndürür. Bu kullanımda metne 0x öneki eklemeyin.