Member-only story
HackerRank — Java Currency Formatter
NumberFormat ve Locale kullanımı, Java Currency Formatter sorusunun çözümü
HackerRank üzerindeki Java problemlerini çözüyoruz. Bu on üçüncü problem. Eğer diğer problem çözümlerini okumadıysanız önce onlara bakmanızı tavsiye ederim, hepsinin toplu hali:
Yazının devamını göremeyenler “bu linkten” erişebilirler.
Önce problemi anlayalım sonra da çözümüne geçelim. Problemi anlama kısmını okuduktan sonra problemi çözmeyi denemenizi sonra da buradaki çözümle karşılaştırmanızı şiddetle tavsiye ederim :)
Problemin linki 👇
Problemi anlayalım
Problemde verilen inputu farklı ülkelerin para birimlerinde göstermemiz isteniyor. Bu soruda sadece 4 ülke var ve ülkelerin para birimlerini yazarak printi sağlayabilirsiniz. Ama daha şık bir çözüm sağlayayım derseniz Locale ve NumberFormat sınıflarına bakmamız gerekir.
- Locale, bir bölgeyi bir dili tarif ederken kullanabileceğimiz sabitler ve metodlar sağlar. Locale ile Hindistan bölgesini tanımlamayı şu şekilde yaparız:
Locale INDIA_LOCALE = Locale.of("en", "IN");
Yukarıdaki yöntem Java 19'dan itibaren kullanılan. Eğer daha önceki sürümü kullacaksanız aşağıdakini kullanabilirsiniz, Java 19'dan sonra da kullanabilirsiniz ama deprecated durumda. HackerRank üzerindeki çözümlerde de aşağıdaki yöntem işe yarayacaktır (çünkü şuan için HackerRank üzerinde Java 7, 8 ve 15 var):
Locale INDIA_LOCALE = new Locale("en", "IN");
Locale sınıfı içerisinde bazı tanımlı bölgeler olsa da çoğu yok. Olmayan bölgeleri de yukarıdaki gibi tanımlayabiliyoruz.
- NumberFormat, herhangi bir sayının…