Java ile programlama yaparken ‘String’ değerleri çeşitli sayı tiplerine çevirmek pek zor bir iş sayılmaz. Çevirmek istediğiniz sayı tipinin ‘parseXXX’ metodunu kullanarak tek satırda bu işi yapabilirsiniz (int i=Integer.parseInt(”123″)). Tabii dönüştüme yapacağınız değerin geçerli bir sayı olmama ihtimaline karşı bu işlemi ‘try…catch’ içerisine almak gerekir ve işlem birdenbire 5 satıra (ya da 3, ya da uzun tek bir satıra) çıkar (try{ i=Integer.parseInt(”123″)); }catch(Exception e){}). Bunu defalarca yapacaksanız bu iş iyice sinir bozucu hale gelir.
Aşağıda sayı çevrim işini basitçe halleden bir sınıf var. İsteğiniz sayı formatına göre ‘toInteger’, ‘toDouble’, ‘toLong’, ‘toFloat’ metotlarından birisini çağırarak dönüştürme işini yapabiliyorsunuz. Eğer isterseniz, ‘String’in uygun bir sayı olmaması durumunda (yani sayı olmayan herhangi bir metin), geçerli (default) olacak bir değeri de ikinci parametre olarak verebilirsiniz. Bu anlatımdan birşey anlamadıysanız -ki anlaşılmaması için tüm yeteneklerimi sergiledim- aşağıdaki örneklere bakıp olayı çözebilirsiniz.
Kullanım Örnekleri:
int intval=-1; intval = NumberUtil.toInteger("123,456"); //sonuç: intval=0 intval = NumberUtil.toInteger("ahmet1", 5); //sonuç: intval=5 intval = NumberUtil.toInteger("123456", 5); //sonuç: intval=123456
Bu da sınıfımız:
public class NumberUtil { public static int toInteger(String str){ return toInteger(str, 0); } public static int toInteger(String str, int defaultValue){ int retValue = defaultValue; try { retValue=Integer.parseInt(str); } catch (Exception e) { } return retValue; } public static long toLong(String str, long defaultValue){ long retValue = defaultValue; try { retValue=Long.parseLong(str); } catch (Exception e) { } return retValue; } public static float toFloat(String str, float defaultValue){ float retValue = defaultValue; try { retValue=Float.parseFloat(str); } catch (Exception e) { } return retValue; } public static double toDouble(String str, double defaultValue){ double retValue = defaultValue; try { retValue=Double.parseDouble(str); } catch (Exception e) { } return retValue; } }

Yorumlar