• 10-11-2008, 02:05:04
    #1
    arkadaşlar diyelim bir string var bu stringdeki 1den fazla boşlukları tek boşluk yapmak istiyorum nasıl yapabilrim.
    örn:
     string = "Deneme                    Demo                            Test";
    çıktı: deneme demo test

    olarak almak istiyorum.


    -kullanıcıdan alacağız verileri.
    -php de reguler exp ile kolayca yapılabiliyor ama okul için lazım. yani hocanın gösterdiği fonksiyonlarla c# WindowsForm uygulamasında yapmalıyız.

    textbox a girilen verideki kelimeler arasındaki boşlukları tek boşluğa indirgemek istiyoruz.

    c# da ise replace, substring, remove, trim, trimstart, trimend gibi string fonksiyonlarını gördük.

    şimdiden teşekkür ederim.
  • 10-11-2008, 06:35:03
    #2
    Üyeliği durduruldu
    using System;
    using System.Text.RegularExpressions;
    class Program
    {
    static void Main()
    {
    string s1 = "Alinin Ati Bahceye girerken\tgorulmus.";
    string s2 = "Alinin\n\tati bunu inkar etmis.";
    Regex r = new Regex(@"\s+");
    string s3 = r.Replace(s1, @" ");
    Console.WriteLine(s3);
    string s4 = r.Replace(s2, @" ");
    Console.WriteLine(s4);
    Console.ReadLine();
    }
    }
  • 12-11-2008, 07:05:02
    #3
    tamam bize gösterilen fonksiyonları kullanarak hallettik. algoritması karışık geldide aslında pek bir işlemi yok.
    bu arada reguler exp i ben php de kullanıyordum ama c# a nasıl dökeceğimi bilmiyordum bu cevap çok mükemmel oldu.
    sağolasın kara gözlüm.
  • 01-02-2009, 01:19:33
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    "45 51 1" gibi rakamların arasındakı boşluğu nasıl sılebılırız
  • 01-02-2009, 12:37:45
    #5
    nasıl çözdüğünüzü yazarsanız seviniriz, ayrıca regular expressions bütün dillerde aynı şekilde kullanılır, php de farklı c# ta farklı birşey yoktur, bir standarttır regular expressions
  • 01-02-2009, 13:07:34
    #6
    regex in standart bir yapısının olduğunu biliyorum. sadece c# da kullanmak için hangi kütüphaneyi include edeceğimi ve nesneleri ne şekilde tanımlayacağımı bilmiyordum.

    buyrun çözüm algoritması
    regex siz çözüm

    mantık
    bosmu degiskeni bir önceki karakterin boş olup olmadığını öğrendiğimiz değişken. döngü ve substring kullanarak karakterleri tek tek kontrol ediyoruz boş olma ve bir önceki karakterinde boş olma durumuna göre filtreleme yaparak birden fazla olan boşlukları siliyoruz.

    araçlar:
    1 buton
    1 texbox
    1 label

    buyrun cod:

     private void button1_Click(object sender, EventArgs e)
            {
                string karakter, yazi = textBox1.Text.Trim(), bosmu = "hayır", yeni_yazi="";
                for (int i = 0; i < yazi.Length; i++)
                {
                    karakter = yazi.Substring(i,1);
                    if (karakter != " " || bosmu == "hayır")
                    {
                        yeni_yazi += karakter;
                    }
                    if (karakter == " ")
                    {
                        bosmu = "evet";
                    }
                    else
                    {
                        bosmu = "hayır";
                    }
                }
                label1.Text = yeni_yazi;
            }
  • 01-02-2009, 13:56:21
    #7
    Yukarıdaki gibi yazınca boşluk olmayan karakterler için de epey kontrol yapılacak gibi görünüyor. Aklıma gelen en kestirme yol:
    while (yazi != yazi.Replace("  ", " ") )
                yazi = yazi.Replace("  ", " ");
  • 01-02-2009, 21:14:14
    #8
    bu kodları delphide uygulamak gerekırse nasıl yazmak lazım?
  • 01-02-2009, 21:23:06
    #9
    Şu anda sen yazdın aklıma gelen ilk algoritmayı soluyorum .

    Tankaya dinamik bir dizi tanımla .Stringi dizi içerisine c_str komutu ve strcopy ile yerleştir.Sora dizide ikili kontrol yap bosluk ve ondan sorakide bosluk ise sil bolece her string parcasi arasında tek bosluk kalacak..