Soru & Cevap

Harflere sayı tanımlama ...

04.09.2018 - 05:06

Herkeze merhaba;

Android programlamada yeni sayılırım. Bugünlerde üzerinde çalıştığım bir android uygulamaya, daha önce Csharp ile hazırladığım bir formülü entegre etmeye çalışıyorum. Aşağıga verdiğim linkte de Csharp ile yazılmış örneği bulunan textBox a girilen yazıyı rakama çevirip labele yazdıran kodları.Android için düzenleyemedim. Örnekteki kodları Android (Java) için düzenlememe yardımcı olursanız sevinirim. Yardımcı olacak arkadaşlara şimdiden çok teşekkür ederim.


 private void button1_Click(object sender, EventArgs e)
 {

Hashtable liste = new Hashtable();
liste.Add(“bir”, “1”);
liste.Add(“iki”, “2”);
liste.Add(“üç”, “3”);
liste.Add(“dört”, “4”);
liste.Add(“beş”, “5”);
liste.Add(“altı”, “6”);
liste.Add(“yedi”, “7”);
liste.Add(“sekiz”, “8”);
liste.Add(“dokuz”, “9”);
liste.Add(“on”, “10”);
liste.Add(“yirmi”, “20”);
liste.Add(“otuz”, “30”);
liste.Add(“kırk”, “40”);
liste.Add(“elli”, “50”);
liste.Add(“altmış”, “60”);
liste.Add(“yetmiş”, “70”);
liste.Add(“seksen”, “80”);
liste.Add(“doksan”, “90”);
liste.Add(“yüz”, “100”);
liste.Add(“ikiyüz”, “200”);
liste.Add(“üçyüz”, “300”);
liste.Add(“dörtyüz”, “400”);
liste.Add(“beşyüz”, “500”);
liste.Add(“altıyüz”, “600”);
liste.Add(“yediyüz”, “700”);
liste.Add(“sekizyüz”, “800”);
liste.Add(“dokuzyüz”, “900”);
string yeni = textBox1.Text.ToLower();
string[] bol = yeni.Split(‘ ‘);
int sayi = 0;
for (int i = 1; i <= bol.Length; i++)
{

sayi=int.Parse(liste[bol[i – 1]].ToString())+sayi;
}
label1.Text = label1.Text+” “+Convert.ToString(sayi);

}

}

Site linki : http://www.bilisimogretmeni.com/visual-studio-c/visual-studio-c-uygulamalari-yaziyi-sayiya-cevirme-ceviren-program.html

64 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user umutsoysal
umutsoysal
26.09.2018 - 11:34

HashMap kullanabilirsin. Value ve key mantıgı ile value kısmına "bir" key kısmına ise 1 degelerini set ettikten sonra cağırım yaparken.

Edittext içerigini de ; aşagıda yazdıgım örnek gibi yapabilirsin.


yourEditText.addTextChangedListener(new TextWatcher() {

public void afterTextChanged(Editable s) {

// bu kısımda girilen text i alıp HashMap te ona eş Value veya Key degerlerini alabilirsin..

} public void beforeTextChanged(CharSequence s, int start, int count, int after) {

} public void onTextChanged(CharSequence s, int start, int before, int count) {

} });
 

Profile picture for user Stacker
Stacker
25.09.2018 - 04:32

Xamarin e geçtim rahat ettim bu kodların aynısını xamarin form ile adroid uyumlu yaptım. Eğer C# biliyorsanız tavsiyem Android uygulamalarınızı Xamarin ile yapın . Çok daha kolay. Bu arada Android studio yu bilgisayarımdan kaldırdım.

Profile picture for user seydar
seydar
05.09.2018 - 04:10

if else veya switch yapısı kullanarak yapabilirisniz.Örnek kod şu şekilde:

int sayi;


if(edittext.gettext.tostring=="bir")
{
sayi=1;
}else if(edittext.gettext.tostring=="iki")
{
sayi=2;
}

 

Doğan
05.09.2018 - 04:35
Yorumunuz için teşekkürler. if else yapısı bı işlemler için çok uzun ve karmaşık olur. string yeni = textBox1.Text.ToLower(); string[] bol = yeni.Split(‘ ‘); int sayi = 0; for (int i = 1; i <= bol.Length; i++) { sayi=int.Parse(liste[bol[i – 1]].ToString())+sayi; } label1.Text = label1.Text+” “+Convert.ToString(sayi); } } Bu csharp kodu ile işlemler hem kısa sürüyor hemde edittex içindeki değerleri tek bir yerde toplayabiliyor