Çö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
    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.
 
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.

Kod bloğunda yaz derken o nasıl oluyor bilmiyorum. Hata mesajı yok çalışırken benim istediğim şekilde çalışmıyor sadece.
 
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));
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…