Programalama > JAVA - JSP


Ort. 0
Puan ver:
Ö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
 


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2024 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.