【问题标题】:"string cannot be converted to integer"“字符串不能转换为整数”
【发布时间】:2018-01-18 20:44:58
【问题描述】:

在我的 QuestionnaireUI.java 类中

private void btnProceedActionPerformed(java.awt.event.ActionEvent evt) {                                           
        tblResults.setRowSelectionAllowed(true);
        int temp = tblResults.getSelectedRow();
        Global.manu = tblResults.getValueAt(temp, 1).toString();
        Global.mod = tblResults.getValueAt(temp, 2).toString();
        Global.price = "R" +     (Integer)tblResults.getValueAt(temp,3).toString();  //line of code that gives me the error message

        this.dispose();
        new PaymentUI().setVisible(true);
    }

在我用于所有全局变量的 Global.java 类中

    public class Global {

   public static int rowSelect;
   public static String manu;
   public static String mod;
   public static int price;
   public static int financeprice;
   public static int rate = 9;

}

【问题讨论】:

  • 在 Java 5 之后 .toString() 不需要,因为自动装箱会将其转换为 String...
  • 如何将R 转换为int?
  • 顺便说一句:属性不应该是公开的。您应该将它们设为私有并通过 getter 和 setter 进行访问
  • @UsagiMiyamoto 自动装箱不会自动将整数转换为字符串;它只是自动将原始类型(例如int)装箱到其对应的包装对象java.lang.Integer中。

标签: java string integer int


【解决方案1】:

您正在将R(字符串)添加到(Integer)tblResults.getValueAt(temp,3).toString()

这里有几个问题:

tblResults.getValueAt(temp,3).toString() 返回一个字符串,它不是整数,所以不能转换为整数。

给任何东西添加一个字符串总是会给你一个字符串,所以"R" + something总是会返回一个字符串。然后您尝试将其分配给整数。

【讨论】:

    【解决方案2】:

    作为+ 运算符,以String 作为参数之一,将另一个参数转换为String

    Global.price = "R" + tblResults.getValueAt(temp,3);
    

    除非price 声明为int 在这种情况下:

    Global.price = (Integer)tblResults.getValueAt(temp,3);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 2019-10-16
      相关资源
      最近更新 更多