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但没有成功。我得到的编译错误消息是:
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.
我已经在这里尝试了其他'convert int to String'问题的答案中提供的几种方法,但它们都没有用。如何将'result'转换为String?谢谢你的帮助。
答案 0 :(得分:4)
这会将int转换为字符串:
resultTextField.setText(Integer.toString(result));
编辑:如下所述,无需导入java.lang,因为它始终可用。
答案 1 :(得分:3)
您可以使用Integer.toString(number)或String.valueOf(number)函数。此函数可以取整数并将其转换为String。 尝试添加:
String numResult = Integer.toString(result);
或
String numResult = String.valueOf(result);
答案 2 :(得分:2)
你可以做一个黑客
resultTextField.setText(result + "");
答案 3 :(得分:1)
这样做:(new Integer(result)).toString()
你应该没问题。