2016-01-19 6 views
8

मैं सी # में शुरुआत कर रहा हूं। मैं एएसपीनेट की मदद से माइक्रोसॉफ्ट डेस्कटॉप कैलकुलेटर जैसे वेब कैलकुलेटर बना रहा हूं। लेकिन मैं एक जगह पर अटक गया हूँ। प्लस के लिए मेरे कोड, शून्य, गुणा या div की तरह है:मुझे टेक्स्टबॉक्स टेक्स्ट का अंतिम अक्षर कैसे मिल सकता है?

protected void btnPlus_Click(object sender, EventArgs e) 
{ 
    if (txtBox1.Text.EndsWith("+")) 
    { 
     txtBox1.Text = txtBox1.Text; 
    } 
    else 
    { 
     txtBox1.Text = txtBox1.Text + "+"; 
     ViewState["Operation"] = "+"; 
    } 
} 

लेकिन मैं शून्य की तरह सभी कार्यों के लिए इस हालत की जांच करने, गुणा और भाग चाहता हूँ। मैं नहीं चाहता कि प्लस, मिनस, गुणा या डिव संकेत टेक्स्टबॉक्स में दिखाई दें।

+5

'txtBox1.Text [txtBox1.Text.Length - 1]'? –

+0

रेगेक्स द्वारा इसे जांचें –

उत्तर

1

आप निम्न की तरह कुछ कर सकते हैं: यह है किसी भी ऑपरेटर तो पाठ बॉक्स से उन्हें हटाने

  1. निकालें अंतिम वर्ण
  2. दृश्य राज्य
  3. के चरित्र असाइन ऑपरेटर के आधार पर
  4. अंत में आपरेशन कर

    if (txtBox1.Text != "") 
         { 
          char last_char = txtBox1.Text[txtBox1.Text.Length - 1]; 
          switch (last_char) 
          { 
           case '+': 
            ViewState["Operation"] = "+"; 
            txtBox1.Text.Remove(txtBox1.Text.Length - 1); 
            break; 
           case '-': 
            ViewState["Operation"] = "-"; 
            txtBox1.Text.Remove(txtBox1.Text.Length - 1); 
            break; 
           // do the same for all operators 
           default: 
    
            break; 
          } 
         } 
    
3

आप एक स्ट्रिंग में अपने सभी ऑपरेटरों लगातार संग्रहीत करेंगे और अगर अंतिम वर्ण स्ट्रिंग में निहित है की जाँच कर सकते हैं:

private const string OPERATORS = "+-/*"; 
protected void btnPlus_Click(object sender, EventArgs e) 
{ 
    if (string.IsNullOrEmpty(txtBox1.Text) || // check if string is empty 
     OPERATORS.Contains(txtBox1.Text.Last())) // or if last character is a operator 
    { 
     txtBox1.Text = txtBox1.Text; 
    } 
    else 
    { 
     txtBox1.Text = txtBox1.Text + "+"; 
     ViewState["Operation"] = "+"; 
    } 
} 
संबंधित मुद्दे