日期:2014-05-20  浏览次数:20834 次

(年龄输入框)用getText()获得字符串怎么转换成整形?
我写的程序:
  tf_age = new JTextField();
String ag = tf_age.getText();
if(ag.trim()!=""){
age = Integer.parseInt(ag);
}else{
age=-1;
}
tf_age.setBounds(111, 257, 112, 18);
getContentPane().add(tf_age);

但会报错:java.lang.NumberFormatException: For input string: ""

不知是什么原因?应该怎样写才对?

------解决方案--------------------
1.字符串比较不能用 == 或!=
2.对于错误的输入,最好还是考虑全面一点

建议:
1.给你的JTextField设置一个Document以实现输入过滤,只能输入数字
2.对于获得的输入内容,进行trim(),然后parseInt,对代码进行try-catch,如果捕获到异常,那么使用缺省值-1

Java code

try{
   age=Integer.parseInt(ag.trim());
}catch(Exception e){
   age=-1;
}

------解决方案--------------------
ag.trim()!=""

改成

!"".equals(ag.trim())
------解决方案--------------------
字符串不要用==或者!=
要用equals或者!equals
------解决方案--------------------
1楼说的对啊。
------解决方案--------------------
1楼顶