字符串不能转换为java错误

时间:2016-03-16 11:39:27

标签: java string button integer

MyButton4不起作用,输出显示错误,

  

线程中的异常" AWT-EventQueue-0"   java.lang.ClassCastException:java.lang.String无法在knapsacproject.Interface.getTableData(Interface.java:198)上强制转换为java.lang.Integer

它显示此行错误,

  

tableData [i] =(int)model.getValueAt(i,colIndex);

有什么问题?

     String msg = "";

       BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        try {
            while ((line = rd.readLine()) != null) {
                msg.append(line);                     // get the MSG as String
            }
        } catch (Exception e) {
            Toast.makeText(this, "Stream Exception", Toast.LENGTH_SHORT).show();
        }

int index=line.indexOf('{');  // index from JSON response starts
line=line.substring(index);
JSONObject object=new JSONObject(line);

// from here get your data.

3 个答案:

答案 0 :(得分:4)

当您将字符串值分配给int数组时,您收到此错误。

您需要Integer.parseInt()将字符串转换为int。

tableData[i] = Integer.parseInt(model.getValueAt (i,colIndex));

答案 1 :(得分:1)

您需要使用以下代码将String解析为Integer。

tableData[i] = Integer.parseInt(model.getValueAt (i,colIndex));

答案 2 :(得分:0)

您正在尝试将方法String返回的getValueAt (i,colIndex)值转换为int(这是不可能的),所以基本上它给了您ClassCastException

您需要的是使用答案中提到的方法之一将String值转换为Integer值:

tableData[i] = Integer.parseInt(model.getValueAt (i,colIndex));

tableData[i] = Integer.valueOf(model.getValueAt (i,colIndex));