![]() |
|
|
#1 (permalink) |
|
Banned
![]() |
Ö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" "y edi" "sekiz" "dokuz"};public static final String[] onlar={"" "on" "yirmi" "otuz" "kirk" "elli" "atmis " "yetmis" "aaaaen" "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 bulurif(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(StringIndexOutOfBoundaaaception 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 |
|
|
|
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | UslanmaM | Cevaplar | Son Mesaj |
| java msn | ABYSS | Nokia Programlar | 15 | 07-10-2008 10:49 PM |
| java ansiklopedi | ABYSS | Sonyericsson | 12 | 12-09-2007 12:51 AM |
| Java Konuşuyor | xCaLiBrEx | Java | 1 | 11-03-2007 02:32 PM |
| Java ses uygulamasi | xCaLiBrEx | Java | 1 | 11-01-2007 12:29 PM |
| Counter-Strike 3D New (Java) | ABYSS | Cep Telefonları Genel | 0 | 09-18-2006 12:26 AM |