【问题标题】:Problems converting Integer to String将整数转换为字符串的问题
【发布时间】:2011-05-05 13:47:28
【问题描述】:

我正在尝试将 EditText 字段中的两个数字相加。到目前为止,我有下面的代码,我相信它将 EditText 字段 'pos1_deg' 和 'pos2_deg' 转换为整数 deg1 和 deg2。

deg1 = Integer.parseInt(pos1_deg.getText().toString());
deg2 = Integer.parseInt(pos2_deg.getText().toString());

然后我可以执行以下操作将它们添加在一起

degSum = deg1 + deg2

然后 degSum 寄存器保存 deg1 和 2 的总和。到目前为止这正确吗?

然后要输出回“结果”EditText,我需要将整数 degSum 更改为字符串。我认为正确的方法是使用下面的代码:

result.setText(degSum.toString());

但是,我收到“无法在原始类型 int 上调用 toString()”错误。我做错了什么?

非常感谢您的帮助

【问题讨论】:

  • 一小时前还有一个问题给出了答案:How to convert from integer to String
  • 只是为了清除一些东西'degSum'不是一个寄存器,它是一个变量。在这种情况下,术语“寄存器”是指由 CPU 实现的特定功能,它提供了一个能够对其执行操作的位置。

标签: java android string integer


【解决方案1】:

(假设这是 Java...)

消息是正确的。原始值(例如int)不能在它们上调用方法,因为它们不是对象。相关的方法改为静态注册在 Integer 类上,因此您应该使用:

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

(此方法还采用可选的第二个参数,可让您指定要在其中输出数字的基数,因此您可以通过调用 Integer.toString(degSum, 16) 来获取十六进制表示。可能不是您需要的 现在但值得牢记。)

【讨论】:

    【解决方案2】:

    当你将一个字符串连接到一个非字符串时,结果是一个字符串。

    例如

    int deg1 = 5;
    int deg2 = 4;
    result.setText("" + deg1 + deg2): // passes in "45" (a String)
    result.setText("" + (deg1 + deg2)): // passes in "9" (a String)
    result.setText(deg1 + deg2); // passes in 9 (an int), compile error
    

    【讨论】:

      【解决方案3】:

      你试过了吗:

      result.setText(String.valueOf(deg_sum));
      

      【讨论】:

        【解决方案4】:
        1. 你可以试试 String.valueOf(deg_sum)

        2. 您可以使您的 degSum 不是 int,而是 Integer,因此 toString 方法将可用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-21
          • 2010-12-31
          相关资源
          最近更新 更多