Genellikle bir grafiksel kullanıcı arayüzü, kullanıcının sayısal bir değer girmesini bekleyen metin alanları olacaktır. Bu sayı değeri bir sicim Bazı aritmetik yapmak istiyorsanız programınıza gerçekten yardımcı olmayan bir nesne. Neyse ki, bu String değerlerini sayılara dönüştürmek için yöntemler sağlayan sarmalayıcı sınıfları vardır ve String sınıfının bunları tekrar dönüştürmek için bir yöntemi vardır.
Sarıcı Sınıfları
ilkel veri türleri sayılarla ilgilenen (yani byte, int, double, float, long ve short) sınıf eşdeğerlerine sahiptir. Bu sınıflar, ilkel bir veri türü aldıkları ve sınıfın işlevselliğiyle çevrelediği için sarıcı sınıflar olarak bilinir. Örneğin, Double sınıfı verileri olarak çift bir değere sahip olacak ve bu değeri değiştirmek için yöntemler sağlayacaktır.
Bu sarmalayıcı sınıfların tümü valueOf adlı bir yönteme sahiptir. Bu yöntem bir String'i bağımsız değişken olarak alır ve wrapper sınıfının bir örneğini döndürür. Örneğin, on değerine sahip bir Dize'imiz olduğunu varsayalım:
Dize numarası = "10";
Dize olarak bu sayıya sahip olmak bizim için yararlı değildir, bu nedenle Integer sınıfını bir Integer nesnesine dönüştürmek için kullanırız:
Integer convertedNumber = Integer.valueOf (sayı);
Şimdi sayı bir String olarak değil sayı olarak kullanılabilir:
convertedNumber = convertedNumber + 20;
Ayrıca dönüşümün doğrudan ilkel bir veri türüne gitmesini de sağlayabilirsiniz:
int convertedNumber = Integer.valueOf (sayı) .intValue ();
Diğer ilkel veri türleri için, sadece doğru sarıcı sınıfına (Byte, Integer, Double, Float, Long Short) yuva yaparsınız.
Not: Dize'nin uygun veri türüne ayrıştırılabildiğinden emin olmalısınız. Eğer bunu yapamazsanız bir çalışma zamanı hatası ile karşılaşırsınız. Örneğin, "on" değerini bir tamsayıya çevirmeye çalışmak:
Dize numarası = "on";
int convertedNumber = Integer.valueOf (sayı) .intValue ();
derleyici "on" 10 olması gerekiyordu hiçbir fikri olmadığı için bir NumberFormatException üretecektir.
Daha incelikle aynı hata, bir 'int' değerinin yalnızca tam sayıları tutabileceğini unutursanız ortaya çıkar:
Dize numarası = "10.5";
int convertedNumber = Integer.valueOf (sayı) .intValue ();
Derleyici sadece bir 'int' sığmadığını ve NumberFormatException özelliğinin uygun olduğunu düşünecek sayıyı kısaltmaz.
Sayıları Dizelere Dönüştürme
Bir String'e sayı yapmak için String sınıfının bir valueOf yöntemine sahip olmasıyla aynı desen türünü izler. İlkel veri türü numaralarından herhangi birini bağımsız değişken olarak alabilir ve bir String üretebilir:
int sayı Yirmi = 20;
Dönüştürülmüş String = String.valueOf (numberTwenty);
"20" değerini koverdize edilen String değeri olarak koyar.
veya sarmalayıcı sınıflarından herhangi birinin toString yöntemini kullanabilirsiniz:
Dönüştürülmüş string = Integer.toString (numberTwenty);
ToString yöntemi tüm nesne türleri için ortaktır - çoğu zaman yalnızca nesnenin açıklamasıdır. Sarıcı sınıfları için bu açıklama, içerdikleri gerçek değerdir. Bu doğrultuda dönüşüm biraz daha sağlamdır. Tamsayı yerine Double sınıfı kullanılacaksa:
Dönüştürülen dize = Double.toString (sayıTwenty);
sonuç bir çalışma hatası. Dönüştürülen değişken "20.0" Dizesini içerir.
Ayrıca, sayıları dönüştürmek için daha ince bir yol var. Dizeleri birleştirme. Bir Dize şu şekilde oluşturulacaksa:
String aboutDog = "Köpeğim" + numberTwenty + "yaşında.";
int numarasının yirmi dönüşümü otomatik olarak yapılır.