0 beğenilme 0 beğenilmeme
1 görüntülenme
Java kategorisinde Bilge (112k puan) tarafından soruldu
tarafından yeniden gösterildi
Verilen sayıyı ya da fatura tutarını  yazıya çevirme için örnek kod
    

1 cevap

0 beğenilme 0 beğenilmeme
Bilge (112k puan) tarafından cevaplandı
// Aşağıdaki iki statik metot verilen sayıyı yazıya çevirir. 999 milyon'a kadar olan sayıları çevirebilirsiniz.
// Daha yüksek sayılara ihtiyacınız varsa, koda bakarak gerekli dizileri ekleyebilirsiniz.
// Aşağıdaki kod fatura tutarını çevirmek için hazırlanmıştır, o yüzden eğer string boşsa "sıfır" değeri
// değeri döner. 13TLSıfırKr.  gibi.... Fatura tutarını "," ile ikiye bölüp ayrı ayrı yazıya çevirebilirsiniz.
// Sayıyı yazıya çevirme!

    public static String convertNumberToText(String s) {
        StringBuilder sb = new StringBuilder();
        if (s.length() < 4) {
            sb.append(getText(s));
        } else if (s.length() > 3 && s.length() < 7) {
            String yuzler = s.substring(s.length() - 3, s.length());
            String binler = s.substring(0, s.length() - 3);
            if (binler.length() == 1 && binler.equals("1")) {
                sb.append("bin").append(getText(yuzler));
            } else {
                sb.append(getText(binler)).append("bin").append(getText(yuzler));
            }
        } else if (s.length() > 6 && s.length() < 10) {
            String yuz = s.substring(s.length() - 3, s.length());
            String bin = s.substring(s.length() - 6, s.length() - 3);
            String mil = s.substring(0, s.length() - 6);
            System.out.println(mil + " " + bin + " " + yuz);
            sb.append(getText(mil)).append("milyon");
            if (Integer.parseInt(bin) > 1) {
                sb.append(getText(bin)).append("bin");
            } else if (Integer.parseInt(bin) == 1) {
                sb.append("bin");
            }
            sb.append(getText(yuz));
        } else {
            sb.append("Belirlenenlimitigecti!");
        }
        if (sb.toString().isEmpty()) {
            sb.append("sıfır");
        }
        return sb.toString();
    }

// Alttaki metotda sadece birler, onlar ve yüzler basamağı hesaplanıp geri döndürülüyor. Bunun sebebi
// verilen rakam üçer üçer okunuyor. Çünkü Türkçe'de iki bin deriz ama bir bin demeyiz, direk bin deriz. Yine
// İki yüz bin deriz ama bir yüzbin demeyiz. Kısaca birleştirme hatalarının önüne geçmek için önce
// Üçer üçer okuyup sonra birleştiriyoruz.
    private static String getText(String s) {
        int sayi, birler, onlar, yuzler;
        sayi = Integer.parseInt(s);
        birler = sayi % 10;
        onlar = (sayi / 10) % 10;
        yuzler = (sayi / 100) % 10;
        String[] birlik = {"", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"};,
        String[] onluk = {"", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan"};
        String[] yuzluk = {"", "yüz", "ikiyüz", "üçyüz", "dörtyüz", "beşyüz", "altıyüz", "yediyüz", "sekizyüz", dokuzyüz"};

        s = yuzluk[yuzler] + "" + onluk[onlar] + "" + birlik[birler];
        return s;
    }
En güncel teknolojiler hakkında yeni şeyler öğren, bilmediklerini sor, bildiklerini paylaş...

Kategoriler

...