2015-04-12 216 views
0
private JTextField resultTextField; 
resultTextField.setText(" "); ... 

private class InputListener implements ActionListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     Stack<Integer> operandStack = new Stack<Integer>(); 
     Stack<Character> operatorStack = new Stack<Character>(); 

     String input = inputTextField.getText(); 

     StringTokenizer strToken = new StringTokenizer(input, " ", false); 


     while (strToken.hasMoreTokens()) 
     { 
      String i = strToken.nextToken(); 
      int operand; 
      char operator; 

      try 
      { 
       operand = Integer.parseInt(i); 
       operandStack.push(operand); 
      } 
      catch (NumberFormatException nfe) 
      { 
       operator = i.charAt(0); 
       operatorStack.push(operator); 
      } 
     } 
     int result = sum (operandStack, operatorStack); 
     resultTextField.setText(result); 

最後一行顯示爲:「resultTextField.setText(result);」在提供的代碼中,我試圖將'result'變量轉換爲String,但沒有成功。編譯錯誤消息我得到的是:將int轉換爲字符串

PrefixExpression.java:96: error: method setText in class JTextComponent cannot be applied to given types; 
      resultTextField.setText(result); 
         ^
    required: String 
    found: int 
    reason: actual argument int cannot be converted to String by method invocation conversion. 

我試着在答案在這裏已經提供給其他「int轉換成字符串」問題的幾種方法,但他們沒有工作。如何將'結果'轉換爲字符串?謝謝你的幫助。

+0

告訴我們,您是否嘗試過的方法和如何處理他們的問題了。 – RealSkeptic

+0

'Integer.toString(result)'的問題是什麼? – silentprogrammer

+0

@singhakash'result'是'int',而不是'Integer'。 – RealSkeptic

回答

4

這將一個int轉換爲字符串:

resultTextField.setText(Integer.toString(result)); 

編輯:如下文所述,沒有必要進口的java.lang因爲它將始終可用。

+2

你永遠不需要導入'java.lang。*'庫。 – RealSkeptic

+0

我將編輯我的答案以刪除導入。 – druidicwyrm

1

只要這樣做:(new Integer(result)).toString()你應該沒問題。

+2

'Integer.toString(result)'不整齊嗎? –

+0

@BoristheSpider是的,當然。 –

+0

除了整潔,它會創建一個較少的對象。 – RealSkeptic

2

你可以做一個黑客

resultTextField.setText(result + ""); 
+0

Moishe,謝謝,它工作! YAHOOOOOOO! – Jeremy

+0

其實,@Jeremy,這被認爲是不好的做法。 – RealSkeptic

+0

@RealSkeptic RealSkeptic,什麼被認爲是不好的做法,Moishe Lipsker提供的代碼或我對他或她的評論? – Jeremy

3

您可以使用Integer.toString(number)或String.valueOf(number)函數。這個函數可以取一個整數並將其轉換爲一個字符串。 嘗試添加:

String numResult = Integer.toString(result); 

String numResult = String.valueOf(result); 
+0

我改變了帖子。 – MLavrentyev