Hafta içi her gün 19:30 - 21:30 arası forumENA CANLI radyo yayını "Keyf-i Müzik" programını dinlemek için TIKLAYINIZ


Canlı yayını dinlemek için bilgisayarınızda WINAMP kurulu olmalıdır.WINAMP indirmek için TIKLAYINIZ
forumENA - Knight Online , KOXP

 

Java ile sayilari yaziya donusturmek

Java içinde Java ile sayilari yaziya donusturmek konusu , Kod: Önce daha sonra kolaylikla kullanabilmek için birkaç degisken yaratalim : import java.io.*; public class SayiCevirici{ public static final String[] birler={"","bir","iki","uc","dort","bes","alti","yedi","sekiz","dokuz"}; public static final String[] onlar={"","on","yirmi","otuz","kirk","elli","atmis","yetmis","seksen","doksan"}; public static final String[] ...







Geri Dön   forumENA - Knight Online , KOXP > Program , Programlama, İnternet > Programlama > Java

KAYIT OL Yönetim Takımı Üye Listesi Tüm konuları okunmuş kabul et
Eski 28-10-2006, 12:02   #1 (permalink)
Asistan
 
Pessimist_Bozo - ait Avatar
 
Üyelik Tarihi: 23-10-2006
Yer: Underground
Mesajlar: 639
Rep Gücü: 52
Rep Puanı: 2047
Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8Pessimist_Bozo Rütbe:  +8
Pessimist_Bozo - ICQ üzerinden mesaj gönder Pessimist_Bozo - AİM üzerinden mesaj gönder Pessimist_Bozo - MSN üzerinden mesaj gönder Pessimist_Bozo - YAHOO üzerinden mesaj gönder Pessimist_Bozo - SKYPE üzerinden mesaj gönder
Tanımlı Java ile sayilari yaziya donusturmek



Kod:
Önce daha sonra kolaylikla kullanabilmek için birkaç degisken yaratalim :





import java.io.*;



public class SayiCevirici{



      public static final String[] birler={"","bir","iki","uc","dort","bes","alti","yedi","sekiz","dokuz"};

      public static final String[] onlar={"","on","yirmi","otuz","kirk","elli","atmis","yetmis","seksen","doksan"};

      public static final String[] basamaklar={"","bin","milyon","milyar","trilyon","katrilyon"};







Daha sonra bir sayinin belli bir basamagindaki rakami bulacak bir metod yazalim :





      public static int rakamBul(int i,int sayi){ //sayinin i basamagindaki rakamini bulur

            if(i<=0) return 0;

            else return ((int)(sayi%Math.pow(10,i))/(int)(Math.pow(10,i-1)));

      }









Burada ise bir sayinin yuzluklerini ayiriyoruz.

Yani örnek olarak : sayiAyir(36479348946)'nin sonucu {946,348,479,36} oluyor...





      public static int[] sayiAyir(long sayi_){ //sayiyi ucer ucer ayirir

            String sayi=""+sayi_;

            int uzunluk=sayi.length();

            int[] sayilar=new int[uzunluk/3+((uzunluk%3==0)?0:1)];

            sayi="000"+sayi;

            int i=0;

            try{

                  while(i<uzunluk/3+((uzunluk%3==0)?0:1)){

                        sayilar[i]=Integer.parseInt(sayi.substring(sayi.length()-3));

                        sayi=sayi.substring(0,sayi.length()-3);

                        i++;

                  }

            }catch(StringIndexOutOfBoundsException e){

                  sayilar[i]=Integer.parseInt(sayi);

            }



            return sayilar;

      }







yuzlukCevir() metoduyla da üç basamakli sayilari yaziya dönüstürüyoruz :





      public static String yuzlukCevir(int sayi){  //uc basamakli sayiyi cevirir

            if(sayi/1000>0) return "hatali sayi !";

            else if(sayi==0) return "sifir";

            else{

                  String sayininBirleri=birler[rakamBul(1,sayi)];

                  String sayininOnlari=onlar[rakamBul(2,sayi)];

                  String sayininYuzleri;

                  if(rakamBul(3,sayi)==0) sayininYuzleri="";

                  else if(rakamBul(3,sayi)==1) sayininYuzleri="yuz";

                  else sayininYuzleri=birler[rakamBul(3,sayi)]+"yuz";

                  return sayininYuzleri+sayininOnlari+sayininBirleri;

            }

      }







En önemli metodumuza yardimci bütün metodlar tamam.

Simdi geriye sadece herhangi bir sayiyi çevirecek bir metod kaldi :





      public static String sayiCevir(long sayi){ //1 kentrilyondan kuçuk sayiyi cevirir.

            if(sayi==0) return "sifir";

            String sonuc="";

            String eksi="";

            if(sayi<0) { eksi="eksi ";  sayi=-sayi;  }

            int[] bolumler=sayiAyir(sayi);

            if(bolumler.length>6) return "Cok buyuk sayi";

            else{

                  for(int i=0;i<bolumler.length;i++){

                        if(i==0) {

                              if(bolumler[i]!=0) sonuc=sonuc+yuzlukCevir(bolumler[i]);

                        }

                        else if(i==1){

                              if(bolumler[i]==1) sonuc=basamaklar[i]+" "+sonuc;

                              else if(bolumler[i]!=0) sonuc=yuzlukCevir(bolumler[i])+basamaklar[i]+" "+sonuc;

                        }

                        else{

                              if(bolumler[i]!=0) sonuc=yuzlukCevir(bolumler[i])+basamaklar[i]+" "+sonuc;

                        }



                  }

                  return eksi+sonuc;

            }



      }







Yazdigimiz bu metodlari deneyelim :





      public static void main (String args []) throws IOException {

            InputStreamReader isr = new InputStreamReader(System.in);

            BufferedReader in = new BufferedReader(isr);



            System.out.println("Bir sayi girin :");

            String sayi=in.readLine();

            long longSayi=0;

            try{

                  longSayi=Long.parseLong(sayi);

            }catch(NumberFormatException e){

                  System.out.println("Geçersiz sayi");

                  System.exit(0);

            }



            System.out.println(" "+sayi+" sayisinin yaziyla degeri : "+sayiCevir(longSayi));

       }

} // class definition'in sonu

__________________
myspace.com/bozp55
Pessimist_Bozo isimli üyemiz çevrimdışıdır. (Offline)   Alıntı yaparak aynı kişiye cevapla
Eski 07-05-2007, 16:29   #2 (permalink)
Moderator
 
killer man - ait Avatar
 
Üyelik Tarihi: 15-02-2007
Yer: Giderken Sağda Dönerken Solda
Mesajlar: 1,568
Rep Gücü: 49
Rep Puanı: 1223
killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7killer man Rütbe: +7
killer man - MSN üzerinden mesaj gönder
Tanımlı Cevap: Java ile sayilari yaziya donusturmek


Paylaşım İçin Teşekkürler..

__________________
birgünbirpalyaçovarmışbütünağlayanlarıgüldürürmüşb irgünbiradamvarmışyoğunağlamateşhisiyledoktorabaşv urmuşdoktordademişkigitpalyaçoyubulosenigüldürürde mişadamdademişkiobenim

Edirneye gittim ve Hakkari' ye,
Ankara'ya da gittim. Ne olmuş yani?




ßu şehir rakıyla yaşar,
Bu şehir cigarayı ceker.
Bu şehir gündüzü yaşar,
Bu şehir her geceyi sever!
Bu şehirin adamı söver,
Bu şehir kadınını döver...
killer man isimli üyemiz çevrimdışıdır. (Offline)   Alıntı yaparak aynı kişiye cevapla
Cevapla

Etiketler
java

Konu Yönetim Seçenekleri
Konu Gösterim Seçenekleri

Yetkileriniz
Yeni konu açamazsınız
You may not post replies
Mesajınıza dosya ekleyemezsiniz
Mesaj düzenleme yapamazsın

BB code is Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı









| fx15 | neyapak | Doğum | Oyunlar |
forumENA sistem saati: 03:46


Powered by vBulletin Version 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0
-------------------------------------------------------------------------
Türkçeleştirme izmirlinihat tarafından yapılmaktadır
forumENA sitesi ENAhosting© tarafından barındırılmaktadır