【问题标题】:Convert int to String [duplicate]将 int 转换为字符串 [重复]
【发布时间】:2015-06-18 01:44:20
【问题描述】:
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);”在提供的代码中,我试图将“结果”变量转换为字符串但没有成功。我得到的编译错误信息是:

PrefixExpression.java:96:错误:类 JTextComponent 中的方法 setText 不能应用于给定类型;
          resultTextField.setText(结果);
                         ^
  必需:字符串
  找到:int
  原因:实参int不能通过方法调用转换为String。

我已经尝试了几种方法,这些方法已经在此处对其他“将 int 转换为字符串”问题的回答中提供,但它们都不起作用。如何将“结果”转换为字符串?感谢您的帮助。

【问题讨论】:

  • 向我们展示您尝试过的方法以及它们的问题所在。
  • Integer.toString(result)有什么问题
  • @singhakash resultint,而不是 Integer

标签: java


【解决方案1】:

只要这样做:(new Integer(result)).toString(),你应该没问题。

【讨论】:

  • Integer.toString(result) 会不会更整洁?
  • @BoristheSpider 是的,当然。
  • 除了更整洁之外,它还会创建一个更少的对象。
【解决方案2】:

你可以做一个 hack

resultTextField.setText(result + "");

【讨论】:

  • Moishe,谢谢,成功了!啊啊啊啊!
  • 实际上,@Jeremy,这被认为是不好的做法。
  • @RealSkeptic RealSkeptic,什么被认为是不好的做法,Moishe Lipsker 提供的代码或我对他或她的评论?
  • @MoisheLipsker 我刚刚注意到“你可以做一个黑客”这句话。挺酷的!我第一次黑客!好的 :-( 不酷。
  • @Jeremy 我的意思是代码。请参阅this answer,其中解释了这一点。
【解决方案3】:

这会将 int 转换为字符串:

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

编辑:如下所述,无需导入 java.lang,因为它始终可用。

【讨论】:

  • 您永远不需要导入java.lang.* 库。
  • 我将编辑我的答案以删除导入。
【解决方案4】:

您可以使用 Integer.toString(number) 或 String.valueOf(number) 函数。这个函数可以接受一个整数并将其转换为一个字符串。 尝试添加:

String numResult = Integer.toString(result);

String numResult = String.valueOf(result);

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 2012-01-24
    • 2013-11-04
    • 2021-12-25
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    相关资源
    最近更新 更多