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; } }