Kolay bir problem. Mademki kodla çzüm istemiyorsun sana hızlıca anlatıvereyim. -input stringini al -input stringini regexp e tabi tut. Bu regexp ile komut ve varsa parametre/leri ayırıp bir objenin içine gm. -Switch case ile komutun yapacağı işi tanımlayıp gerçekleştirebilisin. Ama grdüğüm kadarıyla daha yakışıklı ve ğretici bir yntem istiyorsun. O zaman Observer Pattern i inceliyorsun. https://en. wikipedia. org/wiki/Observer_pattern Bu pattern i kullanarak uygulama içerisinde "length diye bir komut geldi" diye tüm uygulamaya haber veriyorsun ve bu "length" parametresiyle işi olan herkes bu olaydan haberdar oluyor. Sana sadece her komut için listener yazıp attach etmek kalıyor. Ama switch-case çok daha hızlı çalışır ama merkezi bir yapıdadır. Observer ise classların birbirine olan bağımlılığını azaltır. Seçim senin ama kolay proje olmuş.

ncelikle java bilmiyorum. Sen javascript biliyorsan javascript üzerinden devam edelim. PcK0 tarafından 24/Ağu/15 23:22 tarihinde düzenlenmiştir Sadece bi imza..

Ben karaladım birşeyler umarım işine yarar. Editlemeden nce grdüysen biraz karışık oldu jsfiddle'a attım biraz toparladım. jsfiddle. net/an2a158n/ PcK0 tarafından 25/Ağu/15 01:09 tarihinde düzenlenmiştir Sadece bi imza..

Girilen komutun ilk 3 harfini split et. Sonrası switch case yapısı : len ise şunu yap, upp ise bu falan. Switch-Case sevmem dersen @S2buyuk nerisine bak. (senin koşuluna gre ilk 3 harf bizi bağlıyor, len de yazsa aynı lengt de length de) ozgunlu tarafından 25/Ağu/15 01:14 tarihinde düzenlenmiştir Hello, i am nothing. I come from Neverland.

Farkettim onu düzenliyorum Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

ncelikle gerçekten byle bir soru için sağol oturup yazayım dedim. bunu incelersen sorularına tek tek çzüm getirmeye çalıştım. Not: Kontrolü yaparsın daha iyi yapan mutlaka çıkacaktır. maksat iş grülsün... . import java. util. Scanner; public class KomutSatiri { static String komutlar = ; public static void main { // TODO Auto-generated method stub Scanner scn = new Scanner ; while } public static void KomutGir { //Length, reverse, upper, lower, quit. String komut = str. split ; komut . toLowerCase ; if(komut. length 2) { if(tirnakKontrol(komut )) { switch (komut . substring(0,3)) } else } else } public static boolean tirnakKontrol { if (str. substring(0,1). equals && str. substring(str. length -1, str. length . equals return false; } public static boolean komutDogrula { if(komut. length > 2 && komut. length < 7) { for(int i=0;i<komutlar. length;i++) { if(komut. substring(0, komut. length . equals(komutlar . substring(0, komut. length } return false; } return false; } public static String yaziyiTersle { if(str. length 0) return yaziyiTersle(str. substring(1))+str. charAt(0); } } Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Olur başlayalım o zaman. Kod giriş mantığı hakkında sadece splitlere bağlı kalmamak demişsin ama eval gibi olayları çok geniş noktalara taşıyabilecek eval komutu javada yok :D Yani compile edilen bir dilde eval pek olmaz. Şu an baktım javascript'e bağlı olarak bir eval komut işlemesi falan kullanmakta imiş sanırım oda matematiksel işlemler için. Neyse devam edelim. dizi = array dizge = string Ayrıca bazı yerlerde ilgili dillere gre farklılıklar gsterecektir. Mesela dizi anahtarında dizge kullanmak phpde çok alışıla gelmiş birşeyken javascriptte anahtarı dizge kullanıldığında dizi associative olarak anılıyor. O yüzden daha ortak tarzda ynlendirmeye çalışacağım. Ama sormalıyım javada anonim fonksiyonlar hakkında bilgin varmı? Ve bunları dışarıdan çağırabilir misin? PcK0 tarafından 25/Ağu/15 00:07 tarihinde düzenlenmiştir Sadece bi imza..

Hocam switch-case yapısıyla pratik bir şekilde yapılabilir. Tabi if/else kullanılabilir ancak switch-case'de daha derli toplu oldu gibi. Ben yalnızca uzunluğu aldım bunlara toUpper toLower falan eklersin uzar byle liste. Program sonlanmasın istersen while dngüsü içine alabilirsin. Takipteyim :d Gece! Vampir değilim ama geceyi çok severim. Yalnızsın, oyun oynuyorsun monitrün ışığı ve kendin.

@S2buyuk Observer Pattern olayini birazdan incelemeye aliyorum kulaga cok hos geliyor. @Pck0 hocam kodlari simdi gordum incelicem. @Dupi switch case in temiz bir ornegi olmus hocam eline saglik benim ilk yaptigim yontemde bu sekildeydi ancak sanirim aradigim sey S2buyuk muridin gosterdigi yontem olabilir. edit : Dupi hocam ornegin lenxx girdigimde komutu kabul ediyor etmemesi gerekiyor. Yeni incelemeye basladim duzeltirsem tekrar yazarim. Absolut tarafından 25/Ağu/15 14:12 tarihinde düzenlenmiştir Nice babayigitler kirayi kim odeyecek, coluk cocuk ne yiyecek derdinden dolayi dunyayi degistiremiyor.

daha kompleks komutlar için de düşününce regex kullanılabilir İnsan; insan olsaydı, insan olmazdı..

daha kompleks komutlar için de düşününce regex kullanılabilir Aslinda soruda komut satiri ve ardindan uygulanacak komut kelimesi gelmeli die basitlestirmisler. ben yinede ordan yola cikarak kompleks verilir die split ettim bosluk tab " falan atip o sekilde dondurdugu her elemani string arraya atip array i da komut olarak kabul edip ordan yola cikarak islem yaptirmaya calistim. @PcK0 hocam istediginiz dilde aciklama yazabilirsiniz maksat sorun cozumune gidisat yolu javascript ile yaparsaniz elimizde extra dil kodu olmus olur daha tatli olur. satirlari yorumlayarak javaya cekmeye calisirim. Nice babayigitler kirayi kim odeyecek, coluk cocuk ne yiyecek derdinden dolayi dunyayi degistiremiyor.

C dili ile komut yorumlayıcısı: http://www.kaanaslan.com/resource/document/download_file. php?file_id=16 (Kaan Aslan'ın Sistem Programlama ve İleri C Uygulamaları Kurs Notları, sayfa 39, 40 ve 41'deki rnek). Olaylara karışmayın!

Soruyu java uzerinden yazdigimdan java uzerinden orneklendirerek anlatiyorum. Bir el atin fikir bakimindan Kod yada soru cozumu degil :) Ha ben ugrastim yaptim al bak fikrimin kaynak koduda burda dursun diyen olursa kendi secimidir seve seve incelerim iyi olur. Bir komut satiri yorumlayici programi yapmak istiyorum Ornegin. Ben length "Tahribat" die girdigimde bana tirnak icindeki stringi uznlugunu vericek yada upper "tahribat" dedigimde touppercase yapip ekrana o sekilde yazdiricak. boyle belli basli komutlar eklenicek programa. Komutlar en az 3 harfli yazilabilir sonrasindaki karakterleri zorunlu degil yani, length i len de yazabilir leng de lengt yada length seklinde hepsini kabul edicek ve gerekli islemleri yapip ekrana yazdiricak. lenxx lentt gibi yazimlar kabul edilmiycek. Sorudaki ornek komutlar = lenght, reverse, upper, lower, quit. seklindedir bunlara uygun gelen methodlar kullanilarak ekran ciktisi alinicaktir. Farkli gidis yollarina ve baska kisilerinde sorun cozme yontemlerini gormek adina sizlere soruyorum. Su su methodlari su ekilde kullanarak sunu kullanarak vs gibi Java uzerinden orneklemeler ile yapilirsa tadindan yenmez yinede baska dillerlede aciklama yapilirsa mantik ayni ben kendim ceviririm. NOT: ders sinav zart zurt sorusu degildir. Soru cozumundan herhangi bir maddi kazanc elde etmiyorum. Tamamen kendi capimdaki yaptigim alistirmalar ornegidir. Lan sen bize odev mi yaptiriosun triplerine girilmeden on yargisiz yaklasalim :D Absolut tarafından 24/Ağu/15 21:39 tarihinde düzenlenmiştir Nice babayigitler kirayi kim odeyecek, coluk cocuk ne yiyecek derdinden dolayi dunyayi degistiremiyor.

ben case yerine komutu tek satirda alip length "tahribat" seklinde onlari split edip bir string arraye atayip, komut kisaltmalarinida ayri string arraylerde saklayip denedim. case cok uzun geldi gozume :D Nice babayigitler kirayi kim odeyecek, coluk cocuk ne yiyecek derdinden dolayi dunyayi degistiremiyor.