Çözüldü C# random ve stringbuilder

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

kodlayamadikabi

Femtopat
Katılım
28 Ekim 2020
Mesajlar
38
Merhaba arkadaşlar formda da gözüktüğü gibi, kullanıcının adının ilk 2 harfi ile soyadının son 3 harfini birleştirip label da yazdırmak istiyorum.
Kodlarım aşağıdaki gibi neyin eksik olduğunu söyler misiniz?

Private Void BUTTON1_CLICK(object sender, eventargs e)
{
String adi = textbox1.text;
String soyadi = textbox2.text;
Random turet = New Random();
Stringbuilder SB = New StringBuilder();
For (int i = 0; i <= 9; i++ )
{
Int asc = turet.Next();
Char karakter = convert. Tochar(asc);
Sb. Append(karakter);
}
Label3.text = sb.ToString();
}
 

Dosya Ekleri

  • Ekran görüntüsü 2020-11-03 202728.png
    Ekran görüntüsü 2020-11-03 202728.png
    2,4 KB · Görüntüleme: 49
Son düzenleyen: Moderatör:
Çözüm
C#:
string name = textBox1.Text;
string lastname = textBox2.Text;
char[] namechars = name.ToCharArray();
char[] lastnamechars = lastname.ToCharArray();
int soyisimuzunlugu = lastnamechars.Length;

label3.Text = namechars[0] + "" + namechars[1] + "" + lastnamechars[soyisimuzunlugu-3] + "" + lastnamechars[soyisimuzunlugu-2] + "" + lastnamechars[soyisimuzunlugu-1];
Dostum bu kaçıncı kod içeren sorun sayamadım ama hepsinde aynı hata. Lütfen artık kodları kod blogunda yaz ve arayüzü atmak yerine hata mesajını ve hangi satırda olduğunu at.
 
C#:
string name = textBox1.Text;
string lastname = textBox2.Text;
char[] namechars = name.ToCharArray();
char[] lastnamechars = lastname.ToCharArray();
int soyisimuzunlugu = lastnamechars.Length;

label3.Text = namechars[0] + "" + namechars[1] + "" + lastnamechars[soyisimuzunlugu-3] + "" + lastnamechars[soyisimuzunlugu-2] + "" + lastnamechars[soyisimuzunlugu-1];
 
Çözüm
Neden Substring yöntemi ile almıyorsunuz daha kolay.
Substring yöntemi ile yapmaya çalıştım. Ama soyadının son üç harfini nasıl göstericem? Yardım eder misiniz?
C#:
private void button1_Click(object sender, EventArgs e)
        {
            string ad = textBox1.Text;
            string soyad = textBox2.Text;

            string yeniisim = ad.Substring(0,2);
            string yenisoyisim = soyad.Substring(3,0);

            

            label1.Text = yeniisim.ToString() + yenisoyisim.ToString();
        }
 
Neden substring yöntemi ile almıyorsunuz daha kolay.

Substring yöntemi ile sondan 3 harf direk alınamıyor alınamıyor maalesef. Şöyle ki kullanıcının kaç haneli bir soyadı değeri girdiğini bilmediğinizden substring metodu sondan geriye sayma da yapamadığından bu mümkün değil. Ancak kullanıcının kaç haneli bir değer girdiğini bulup ardından substring metodu içerisinde başlangıç ve bitiş noktalarını belirterek mümkün olabilir. Bunun için yine bir char dizisine atayıp ardından dizinin uzunluğunu bulmak sonra da bu uzunluk üzerinden hesaplama yapmak gerekiyor. Kod örneği;

C#:
string soyad = textBox2.Text;
char[] soyadi = soyad.ToCharArray();
int soyaduzunlukdegeri = soyadi.Length;
MessageBox.Show(soyad.Substring(soyaduzunlukdegeri-3,3));
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı