【问题标题】:int cannot be converted to string?int不能转换成字符串?
【发布时间】:2015-01-05 19:49:51
【问题描述】:

我正在尝试编写说明以注意圆何时将变为 12,然后将 1 加到正方形。

下面的代码对我来说很好用

   int x = Integer.parseInt(circle.getText()); 
   x = x + 1;
   String z = Integer.toString(x);
   circle.setText(z);

但是,我在尝试编写这些新指令时遇到了问题。 我怎样才能得到平方,转换成整数,加1然后把值放回去?

   int q = Integer.parseInt(square.getText());
   x = q + 1;
   square.setText(x);

【问题讨论】:

  • setText(x) 将字符串作为参数。你的 x 是 int
  • 答案在第一个sn-p:将int转换为String。
  • 在第一个 sn-p 中,您执行 Integer.toString(x)。在第二个你没有。为什么你认为它不是必需的。

标签: java string integer


【解决方案1】:

使用您自己的代码 字符串 z = Integer.toString(x); square.setText(z);

【讨论】:

【解决方案2】:
square.setText(x+"")

会工作

【讨论】:

    【解决方案3】:

    为什么int 可以转换为String(除非存在隐式转换,但事实并非如此,Java 编译器、原始包装器和字符串连接之间没有很多隐式的东西)?

    使用以下两个选项之一:

    square.setText(String.valueOf(x));
    square.setText(x + "");
    

    【讨论】:

    • 老实说...我也是 Java 新手,不明白(实际上我仍然不明白)为什么可以打印到屏幕上的东西没有隐式转换。我知道你说过 Java 省略了很多在其他语言中隐式发生的转换,但为什么会这样呢?您似乎没有丢失任何数据...您能否更新您的答案以对此有所了解?
    • 打印出来并连接字符串是一种特殊情况,编译器会自动添加字符串转换,但这是唯一的地方。在其他任何地方,您都必须严格使用类型。
    【解决方案4】:

    您可以使用Integer.toString() 转换为String

    square.setText(Integer.toString(x));
    

    【讨论】:

      猜你喜欢
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多