İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# nasıl ayırırım?

volgan22.10.20119 cevap2.192 görüntüleme
2010'den beri408 mesaj
#1
Bir string var , mesela: 55+2*(135/5)-4 .Bu string'i 55 i + yı 2 yi * i sıralı bir şekilde bir liste veya diziye nasıl atarım?
55
+
2
*
(
135
/
5
)
-
4
gibi
Cevaplar
2008'den beri2.336 mesaj
#2
edit
volgan Konuyu açan
2010'den beri408 mesaj
#3
???
2011'den beri224 mesaj
#4
Tam anlamadım ama
\n yada Array.sort komutu olabilir
2007'den beri291 mesaj
#5
Kod biraz iğrenç ama idare edersin artık :)
var aa = "55+2*(135/5)-4".Replace("+", " + ").Replace("*", " * ").Replace("/", " / ").Replace("-", " - ").Replace("(", " ( ").Replace(")", " ) ").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (var item in aa)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
2007'den beri99 mesaj
#6
adam önce çıkarma işlemi yaparsa ne olacak
2007'den beri17 bin mesaj
#7
azıcık dolambaçlı da olsa yapılabilir. operatörlerin başına sonuna ekstra karakter eklenip o karakterlerden split edilip istenilen elde edilebilir. tabi arada bir array içinde boş veriler çıkabilir, onları da remove ederek istenilene kavuşulur...
2008'den beri357 mesaj
#8
Umarım işini görür.

 string ilkDeger = txtString.Text;//Textbox'a değer giriyorsun Örnek:45-34+12*45
 string parcalanmişDeger=null;
//String değerini tek tek bakıp ona göre işlem yapıyor
    for (int i = 0; i < ilkDeger.Length; i++)
    {
        if (ilkDeger[i] == '+' || ilkDeger[i] == '*' || ilkDeger[i] == '-' || ilkDeger[i] == '/' || ilkDeger[i] == '(' || ilkDeger[i] == ')' || ilkDeger[i] == '{' || ilkDeger[i] == '}')
        {
            parcalanmişDeger += "\n"+ilkDeger[i].ToString()+"\n";
        }
        else
        {
            parcalanmişDeger += ilkDeger[i].ToString();
        }
    }
    MessageBox.Show(parcalanmişDeger);

volgan Konuyu açan
2010'den beri408 mesaj
#9
anamur dedi: ↑
Umarım işini görür.

 string ilkDeger = txtString.Text;//Textbox'a değer giriyorsun Örnek:45-34+12*45
 string parcalanmişDeger=null;
//String değerini tek tek bakıp ona göre işlem yapıyor
    for (int i = 0; i < ilkDeger.Length; i++)
    {
        if (ilkDeger[i] == '+' || ilkDeger[i] == '*' || ilkDeger[i] == '-' || ilkDeger[i] == '/' || ilkDeger[i] == '(' || ilkDeger[i] == ')' || ilkDeger[i] == '{' || ilkDeger[i] == '}')
        {
            parcalanmişDeger += "\n"+ilkDeger[i].ToString()+"\n";
        }
        else
        {
            parcalanmişDeger += ilkDeger[i].ToString();
        }
    }
    MessageBox.Show(parcalanmişDeger);

bu çok haneli sayılarda sıkıntı olur ama.




---------- Post added at 13:01 ---------- Previous post was at 12:54 ----------

totleben dedi: ↑
Kod biraz iğrenç ama idare edersin artık :)

var aa = "55+2*(135/5)-4".Replace("+", " + ").Replace("*", " * ").Replace("/", " / ").Replace("-", " - ").Replace("(", " ( ").Replace(")", " ) ").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (var item in aa)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
kardeş böyle olur gibi hemen deniyorum

edit: denedim ilgilenen herkese teşekkürler
2007'den beri2.589 mesaj
#10
buna bir çözüm de stack kullanmaktır. C#'da stack diye bir api class var mıdır bilmiyorum ama tam ona uygulamalık.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.