2014-02-10 34 views
2

我有一個按鈕一個文本框和一個標籤。當按鈕被點擊時,它應該計算文本框中的值並將其輸出到標籤上。我的主要問題是如何拆分字符串,以便當我鍵入"12+12"時,它會將其拆分爲"12""12",然後計算答案。使用數組的計算器

到目前爲止,我所做的方法是將所有文本拆分爲字符。

char[] x; 


for (int i = 0; i < textBox1.TextLength; i++) { 
    x = textBox1.Text.ToCharArray(); 
    if (x[i].ToString() != "+") 
    { 
    } else { 

    } 
} 
+2

提示:string.Split(「+」);也許..... –

+0

好的,現在閱讀如何使用string.split()。即時通訊在C#上總newb。謝謝! – user3264955

+1

你可以有兩個以上的操作數(如12 + 12-7)嗎?操作順序是否重要? – Tim

回答

3

你可以這樣做加上,並請先做檢查:

string str = yourTextBoxValue.Text; 
string[] strs = str.Split(new char[] { '+' }, StringSplitOptions.RemoveEmptyEntries); 
int param1 = int.Parse(strs[0]); 
int param2 = int.Parse(strs[1]); 
int result = param1 + param2; 
yourLabel.Text = result.ToString(); 
+0

不客氣@ user3264955。更多的麻煩,請告訴我。 –

+0

搜索一些工作區(我沒有任何運氣)param1和param2只採取數組的第一個索引。所以如果我把「12 + 34」只得到「1」和「3」。它適用於1位數字xD – user3264955

+0

嗨,@ user3264955,我試過了,它運行良好。請檢查你的代碼,如果你使用char而不是字符串?或其他問題? –

4

可以加號分割字符串:

string[] parts = textBox1.Text.Split(new char[] { '+', '-', '/', '*' }); 

或等價(因爲參數的Splitthis overloadparams陣列):

string[] parts = textBox1.Text.Split('+', '-', '/', '*'); 
+1

閱讀關於拆分方法。感謝您的快速回復球員:D – user3264955

+1

您不需要'new char []',因爲它是一個'params'數組,但您仍然需要弄清楚操作符是什麼。另外,你可能想要處理像'5 * -2'這樣的字符串。 –

+0

@ p.s.w.g請編輯我的答案並放置一個不帶'new char'的替代語法。我很想學習一種新的語法;-) –