Bir Cümlenin Harflerinin Ascii Kodlarının Toplamını Hesaplayan Java Program

Evet arkadaşlar, bugün yapacağımız örnek başlıkta belirtildiği gibi girilen String bir ifadenin ascii kod karşılıklarının toplamı olacak.

Bunun için klavyeden giriş için Scanner nesnesini çağıracağız. Gireceğimiz string cümlede boşlukları algılaması için ise Scanner nesnesinin nextline() fonksiyonunu kullanacağız. Ayrıca ilk yapılacak olan yolda char dizisine atayarak yani getChars fonksiyonunu kullanarak, ikinci yolda ise charAt() fonnksiyonunu kullanarak yapacağız.

Öncelikle kullanacağımız metodundan bahsedelim. Metodun üstüne tıklayarak özelliğini görebilirsiniz.

getChars() Metodu

getChars() metotu string bir ifadeyi harf harf bir char dizisi içine atar. Metot 4 farklı parametre alır ve bunlar;

Kaynak dizinin başlangıç değeri,

Kaynak dizinin bitiş değeri (dizinin uzunluğu),

Hedef dizinin adı ,

Hedef dizinin başlangıç noktasıdır.

Metotun kullanımı stringDegiskenAdi.getChars(param1, param2, param3, param4); şeklindedir.

[java] //Ascii toplamını bulan program
public static void asciToplam(String str){
char [] dizi = new char[str.length()];
str.getChars(0, str.length(), dizi, 0);
int toplam = 0;
int uzunluk = dizi.length;
for (int i = 0; i < uzunluk; i++) {
toplam = toplam + dizi[i];
}
System.out.println("Toplam Asci toplam : "+toplam);
}
[/java]

Recursive Hali

[java] //Recursive Hali
public static int recursiveAsciToplam(String str, int str_uzunluk, int baslangic_index){
if(str_uzunluk != baslangic_index){
return str.charAt(baslangic_index) + recursiveAsciToplam(str, str_uzunluk, baslangic_index + 1);
}else{
return 0;
}
}
[/java]

Main fonksiyonu

[java] public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.print("lütfen birşey giriniz : ");
String ifade = scan.nextLine();
System.out.println("Kelimemiz : "+ifade);
System.out.println("Recursive Fonksiyona Göre : "+recursiveAsciToplam(ifade, ifade.length(), 0));
asciToplam(ifade);
}
[/java]

Gördüğünüz üzere recursive hali daha kısa ve daha kolaydır. Tabii bunda en üstteki metot da String ifadeyi char’a atmanın da etkisi olabilir. Ama yine de recursive metot kadar kısa olamazdı.
Ben çeşitlilik olması açısından getChars() metodunu kullandım. Siz yapıcaksanız charAt() fonksiyonu ile yapın.
Ama recursive yapmanın mantığını öğrenirseniz bu gibi fonksiyonlar daha az kod ve daha az zamanla çözülür. Her türlü sorularınızı istek soru çözümlerinizi yorum olarak yazabilirsiniz. Hepinizi iyi çalışmalar

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

İşletim Sistemlerine Giriş

İşletim sistemleri, bilgisayar donanımları ve kullanıcılar arasında iletişim sağlamak amacıyla yazılmış olan programlardır. Bilgisayar Nedir? …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.