2013-10-08 43 views
3

我想寫一個計算器,它從文本字段中提取數字並將它們添加到一起,以便在文本區域中輸出它們。 它只要從文本字段中取兩個數字就行,但當我將它們加在一起時,它會發出:1+1=11用於計算器的字符串

如何添加兩個字符串使其等於2?

這是我的源代碼:

private void ButtonPlusActionPerformed(java.awt.event.ActionEvent evt) {           
    String Nummer1 = Zahl1.getText(); 
    String Nummer2 = Zahl2.getText(); 

    int intZahl1 = Integer.parseInt(Nummer1); 
    Integer integerZahl1 = new Integer(Nummer1); 

      int intZahl2 = Integer.parseInt(Nummer2); 
    Integer integerZahl2 = new Integer(Nummer2); 

    Result.setText(Nummer1 + Nummer2); 

Result是我的文字區域的名稱和潛水員Nummer s爲剛剛變量,你可能已經注意到。

+1

除了@HovercraftFullOfEels'的回答,我想指出的是,Java編碼約定規定包名都是小寫字母,類名是CamelCase以大寫字母開頭,變量名是以小寫字母開頭的camelCase。儘管我知道名詞都是大寫的auf Deutsch,但你應該將變量'Nummer1'&'Nummer2'聲明爲'nummer1'&'nummer2',所以它不那麼直觀 – StormeHawke

回答

5

您正在添加字符串而不是整數。您將需要添加integerZahl1和intZahl2,而不是Nummer1和Nummer2。

例如,

int intResult = intZahl1 + intZahl2; 
Result.setText(String.valueOf(intResult)); 

而且順便說一句,你要學習和遵循Java的命名約定。變量和方法名稱應以小寫字母開頭,類名應以大寫字母開頭。


大教堂指出:

或者你可以只是做Result.setText(intZahl1 + intZahl2);如果你只需要顯示結果。

Dom,請理解setText(...)需要String參數,而不是int,因此編譯器不允許您的方法調用。如果試圖伎倆

Result.setText("" + intZahl + intZahl2); 

他們會再次得到11。對於你的技術工作,你需要做這樣的事情,

Result.setText(String.valueOf(intZahl1 + intZahl2)); 

編輯

你也將需要使用整數,而不是整數。

+1

不應該是' int intResult = intZahl1 + intZahl2;'? – StormeHawke

+1

@StormeHawke:哦!謝謝! –

+2

沒問題,我們都有D'oh的瞬間:) – StormeHawke