Çözüldü Split metot olarak nasıl yazılır?

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

Emir46han

Hectopat
Katılım
31 Ocak 2021
Mesajlar
22
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Şu anki kodlarım böyle, nasıl yapabilirim?

C#:
Private static Void asplit(string a)
{

}
Private Void button2_click(object sender, eventargs e)
{

 listBox2.Items.Clear();
 String isim = "onur berkant mevsim";
 String[] isimler = aSplit(isim);
 for (int i = 0; i < isimler.Length; i++)
 {
 listBox2.Items.Add(isimler[I]);[/I]
 [I]}

}
[/I]
 
Son düzenleyen: Moderatör:
Çözüm
Öncelikle void döndürmemelisin. string[] isimlere vereceksen o zaman yine string array döndürüyor olmalısın. private string[] asplit(string a) olmalı yani. Sonrasında fonksiyon içinde template bi string array oluştur. Ardından boşluğa gelene kadarki stringi bu arraye ekle, bu işi strinde karakter kalmayana kadar yap. Eğer son karakter boşluk değilse son kelimeyi de ekle.
Öncelikle void döndürmemelisin. string[] isimlere vereceksen o zaman yine string array döndürüyor olmalısın. private string[] asplit(string a) olmalı yani. Sonrasında fonksiyon içinde template bi string array oluştur. Ardından boşluğa gelene kadarki stringi bu arraye ekle, bu işi strinde karakter kalmayana kadar yap. Eğer son karakter boşluk değilse son kelimeyi de ekle.
 
Çözüm
Öncelikle Void döndürmemelisin. string[] isimlere vereceksen o zaman yine string array döndürüyor olmalısın. private string[] asplit(string a) olmalı yani. Sonrasında fonksiyon içinde template bir string array oluştur. Ardından boşluğa gelene kadarki stringi bu arraye ekle, bu işi strinde karakter kalmayana kadar yap. Eğer son karakter boşluk değilse son kelimeyi de ekle.

Kod üzerinde düzenleme yapıp atma şansınız var mı?
 
Kod üzerinde düzenleme yapıp atma şansım var. Ama benim attığım koddan senin yararlanma ihtimalin, kendin deneyip öğrenmenden çok daha düşük. Dene, yapamadığın yerde yine sor. Yardımcı olayım.

Ben tam olarak yapacağımı anlamadım yoksa haklısın benim yapmam daha doğru ama mantığı tam otutturamadım tam olarak C# bilmiyorum örnekte bulamadım internette. Kodları görürsem mantığı otutturabilirim diye düşünüyorum.
 
Ben tam olarak yapacağımı anlamadım yoksa haklısın benim yapmam daha doğru ama mantığı tam otutturamadım tam olarak C# bilmiyorum örnekte bulamadım internette. Kodları görürsem mantığı otutturabilirim diye düşünüyorum.
Konunun C# bilmekle çok alakası yok. Biraz daha mantık yürütmekle alakası var. En basitinden şu mantığı yürütebilmelisin. Aşağıdaki kodda C#'la alakası olan iki şey var, biri length özelliği, diğeri generic list. Generic list kullanmadan da yapılır bu arada. Aux bi tane daha array olur her yeni eleman ekleyeceğin zaman mevcuttaki arrayi direkt auxa kopyalarsın, sonrasında oradan ana arrayi yeni boyutla oluşturur daha sonrasında auxtakileri ana arraye eklersin şeklinde de yapılabilir. Verimliliği tartışılır ama yapılır yani. Yine C#'tan bağımsız oluyor bu verdiğim durum.

C#:
private static string[] ssplit(string a) {
    List<string> list = new List<string>();
    string temp = "";
    for(int i = 0, j = 0; i < a.Length; i++) {
        if(a[i] == ' ' && i > 0) {
            list.Add(temp);
            continue;
        }
        temp += a[i];
    }
    return list.ToArray();
}
 
Ben tam olarak yapacağımı anlamadım yoksa haklısın benim yapmam daha doğru ama mantığı tam otutturamadım tam olarak C# bilmiyorum örnekte bulamadım internette. Kodları görürsem mantığı otutturabilirim diye düşünüyorum.
Hocam arkadaşın demek istediği private static void asplit(string a) kısmını ya private static string[] asplit(string a) olarak değiştirceksin ya da void kullanmak zorundaysan private static void asplit(string a, out string[] stringArr) şeklinde kullanacağın yerde referans vererek değeri gönderceksin.
 
Hocam arkadaşın demek istediği private static void asplit(string a) kısmını ya private static string[] asplit(string a) olarak değiştirceksin ya da void kullanmak zorundaysan private static void asplit(string a, out string[] stringArr) şeklinde kullanacağın yerde referans vererek değeri gönderceksin.
Sadece o da değil. Split'i nasıl yapacağını da anlattım. Temel mantık yürütmek ondan sonrası.
 
Hocam arkadaşın demek istediği private static void asplit(string a) kısmını ya private static string[] asplit(string a) olarak değiştirceksin ya da Void kullanmak zorundaysan private static void asplit(string a, out string[] stringArr) şeklinde kullanacağın yerde referans vererek değeri gönderceksin.

Orada herhangi bir sorunum yok zaten içinde nasıl bir yol izlemem lazım onu anlamadım.

Aslında direkt split methodu var onu neden kullanmıyor anlamadım.

Öyle direk yapabiliyorum ama böyle nasıl yapılır merak ettim yapmayı denedim ama olmadı.
 

Geri
Yukarı