数值转换问题,请大家帮帮忙! 写错了,是int Sno=Integer.valueOf(id).intValue() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 id=getField("学号");System.out.println("id"+id);Sno=Integer.parseInt(id);System.out.println("Sno"+Sno);比如我在学号文本框中输入1,结果直接抛出异常,没有输出id 检查你id取到的值,我怀疑是null或者空串。应当校验id的合法性。不是随便什么字符串都能转换成int的 id=getField("学号");System.out.println("id"+id);你单步跟踪一下,看id的值到底是不是"1". 使用Integer.parseInt时候参数必须是有效的数字,否则出异常你可以自己家一下判断 id=getField("学号");System.out.println("id"+id);看一下你的id到底输出的是什么? id=getField("学号");这句好像有点问题啊 楼上回帖的几位别逗了,你们好好看看他的代码!(怀疑你们是不是java程序员)java.lang.NumberFormatException明显就是数据格式异常,楼主的Sno=Integer.parseInt(id);明显是低级的语法错误,将字符串转换成整数后然后付值给string类型!不出错才怪呢! 对不起是我看错了!由于显示器分辩率太高,我眼花了!-_-!楼主已经声明了int类型!不过问题肯定出在Sno=Integer.parseInt(id);这句!把你的id值打印出来就一目了然了! 错误里写了:""转换成int失败 空的时候给默认值或设为必填 明显是(field.getText()).trim()的值是"";也就是说,你的field里并没有值,你这里fields又不知道是什么。hashmap??总之你输入的东西根本就没在field里复值。就这么回事 For input string:""就表明输入的字符串是不符合转换规则的。不知道楼主是怎么追踪的。String id;int Sno;id=getField("学号");System.out.println("id:"+id+".")Sno=Integer.parseInt(id);//把输出ID那段东西给我看看。 取到的id为""最好在getField中加入判断语句if( field.getText().equals("") || field.getText() == null ) return "0"; id=getField("学号");我在文本框中输入1,继续执行时就抛出异常 id=getField("学号");得到的东西是什么,你debug一下。 fields 是什么??完整代码贴上来看看 建议楼主保持好的代码风格 public void setField( String fieldName, String value ) { JTextField field = ( JTextField ) fields.get( fieldName ); if(field == null ) { field.setText("null"); } else { field.setText( value ); } } public String getField( String fieldName ) { String rtn=null; JTextField field = ( JTextField ) fields.get( fieldName ); if(field == null ) { rtn = "null"; } else { rtn=(field.getText()).trim(); } return rtn; } dabo1980(Java小菜鸟)-------------没看清楚就不要瞎说什么“(怀疑你们是不是java程序员)”这种话 int Sno=Integer.valueOf(id.trim()) java笔试 请问一个JAVA多态问题! 这个数据库事务怎么建立? 当数组每个值非空时,如何让数组长度加1 麻烦提供一些j2se开发案例下载的网站 头好大,关于事件 考 SCJP,想出去兼职有用吗? 初学者应该搞清楚的问题,(很有讨论价值)可是我还是搞不清楚 请教关于getBytes()方法的使用 一个值得研究的问题 怎么生成 2000年2月29日 的日期? 关于多线程通讯程序的问题!!
System.out.println("id"+id);
Sno=Integer.parseInt(id);
System.out.println("Sno"+Sno);
比如我在学号文本框中输入1,结果
直接抛出异常,没有输出id
应当校验id的合法性。不是随便什么字符串都能转换成int的
System.out.println("id"+id);
你单步跟踪一下,看id的值到底是不是"1".
参数必须是有效的数字,否则出异常
你可以自己家一下判断
System.out.println("id"+id);
看一下你的id到底输出的是什么?
java.lang.NumberFormatException明显就是数据格式异常,楼主的Sno=Integer.parseInt(id);
明显是低级的语法错误,将字符串转换成整数后然后付值给string类型!不出错才怪呢!
楼主已经声明了int类型!不过问题肯定出在Sno=Integer.parseInt(id);这句!
把你的id值打印出来就一目了然了!
也就是说,你的field里并没有值,你这里fields又不知道是什么。
hashmap??总之你输入的东西根本就没在field里复值。就这么回事
就表明输入的字符串是不符合转换规则的。
不知道楼主是怎么追踪的。
String id;int Sno;
id=getField("学号");
System.out.println("id:"+id+".")
Sno=Integer.parseInt(id);//
把输出ID那段东西给我看看。
return "0";
我在文本框中输入1,继续执行时就抛出异常
得到的东西是什么,你debug一下。
public void setField( String fieldName, String value )
{
JTextField field =
( JTextField ) fields.get( fieldName ); if(field == null ) {
field.setText("null");
}
else {
field.setText( value );
}
} public String getField( String fieldName )
{
String rtn=null; JTextField field =
( JTextField ) fields.get( fieldName );
if(field == null ) {
rtn = "null";
}
else {
rtn=(field.getText()).trim();
} return rtn;
}