USLANMAM
USLANMAM öğesini iGoogle sayfanıza ekleyin.
UslanmaM En Kaliteli Bilgi Adresiniz
Geri git   USLANMAM > PROGRAM > PROGRAMLAMA DİLLERİ > Programlama > Java
Google
 
UslanmaM Resim AlbümleriSosyal Gruplar
Kayıt ol Sosyal Gruplar Ajanda Konuları Okundu Kabul Et

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 11-20-2006, 11:30 PM   #1 (permalink)
Banned
 
xCaLiBrEx - ait Kullanıcı Resmi (Avatar)
Cool Java ile sayilari yaziya donusturmek

Ö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 iint sayi){ //sayinin i basamagindaki rakamini bulur
if(i<=0) return 0;
else return ((int)(sayi%Math.pow(10i))/(int)(Math.pow(10i-1)));
}




Burada ise bir sayinin yuzluklerini ayiriyoruz.
Yani örnek olarak : sayiAyir(36479348946)'nin sonucu {94634847936} 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(0sayi.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(1sayi)];
String sayininOnlari=onlar[rakamBul(2sayi)];
String sayininYuzleri;
if(rakamBul(3sayi)==0) sayininYuzleri="";
else if(rakamBul(3sayi)==1) sayininYuzleri="yuz";
else sayininYuzleri=birler[rakamBul(3sayi)]+"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

xCaLiBrEx isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla

Alt 05-15-2008, 12:35 PM   #2 (permalink)
Yeni Üye
Standart

kardeş sen bu işi biliyon ya eline sağlık
bilg44 isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
Eklenti Ekleyemezsiniz
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Gitmek istediğiniz klasörü seçiniz

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