java.lang.NumberFormatException: For input string: ":"
这是什么意思? 如果我运行代码(下面),我会收到上述错误。我是初学者。 和..
stacktrace:[Ljava.lang.StackTraceElement;@e596c9
代码:
try
{
Class.forName("java.sql.DriverManager");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/bvdb","root","enter")
Statement stm=con.createStatement();
String m="-",t="-",w="-",th="--",f="-",st="--",s="-",runson;
if(jCheckBox1.isSelected()==true){
m="m";}
if(jCheckBox2.isSelected()==true){
t="t";}
if(jCheckBox3.isSelected()==true){
w="w";}
if(jCheckBox4.isSelected()==true){
th="th";}
if(jCheckBox5.isSelected()==true){
f="f";}
if(jCheckBox6.isSelected()==true){
st="st";}
if(jCheckBox7.isSelected()==true){
s="s";}
runson= m + t + w + th + f + st + s ;
int h1=Integer.valueOf(jTextField10.getText().substring(0,2)
int mins1=Integer.valueOf(jTextField10.getText().substring(3,5));
int h2=Integer.valueOf(jTextField12.getText().substring(0,2));
int mins2=Integer.valueOf(jTextField12.getText().substring(2,3));
Boolean x=jTextField10.getText().substring(2,3).equals(":");
Boolean y=jTextField12.getText().substring(2,3).equals(":");
String time1=jTextField10.getText().substring(0,2)+jTextField10.getText().substring (2,3)+jTextField10.getText().substring(3,5);
String time2=jTextField12.getText().substring(0,2)+jTextField12.getText().substring(2,3)+jTextField12.getText().substring(3,5);
String tfac1=jTextField13.getText();
String tfac2=jTextField14.getText();
String tfac3=jTextField15.getText();
String tfsl=jTextField16.getText();
if(Integer.valueOf(jTextField3.getText())==0){
tfac1="0";
if(Integer.valueOf(jTextField4.getText())==0){
tfac2="0";}
if(Integer.valueOf(jTextField5.getText())==0){
tfac3="0";}
if(Integer.valueOf(jTextField6.getText())==0){
tfsl="0";}
if(y==true&&x==true&&jTextField1.getText().trim().length()<=6&&jTextField2.getText().trim().length()<=30&&h1<=24&&h2<=24&&mins1<=59&&mins2<=59){
String q="INSERT INTO TRAININFO VALUE ("+jTextField1.getText()+",'"+jTextField2.getText()+"','"+jTextField9.getText()+"','"+time1+"','"+jTextField11.getText()+"','"+time2+"','"+runson+"',"+tfac1+","+tfac2+ ","+tfac3+","+tfsl+","+jTextField3.getText()+","+jTextField4.getText()+","+jTextField5.getText()+","+jTextField6.getText()+");";
stm.executeUpdate(q);
JOptionPane.showMessageDialog("ADDED");
}
}
catch (Exception e){
e.printStackTrace();
}
答案 0 :(得分:2)
这意味着您无法将String
":"
转换为Number
,如integer
或double
见下面的链接
http://docs.oracle.com/javase/7/docs/api/java/lang/NumberFormatException.html
根据java docs
抛出以指示应用程序已尝试转换a 字符串到其中一个 数字类型,但字符串没有适当的格式。
答案 1 :(得分:0)
这意味着您要将":"
转换为不允许的number
。因此,你得到了例外。 更好地展示您的代码
答案 2 :(得分:0)
您获得更快回复的最佳方式&amp;回答你的问题是发布你的代码。 您无法将String转换为数字。
答案 3 :(得分:0)
正如其他人所说,Java无法将“15:”转换为数字,因为“:”不是数字。最可能的原因是这样一条线:
int h1 = Integer.valueOf(jTextField10.getText().substring(0,2));
你将时间字符串拆分为错误的索引,这就是你在其中有“:”的原因。
<强>更新强>
分割像“12:35:09”这样的时间字符串的更好方法是使用String.split():
String timeString = "12:35:09";
String[] parts = timeString.split(":");
boolean validTimeString = parts.length == 3;
上面的代码将产生以下值:
timeString = "12:35:09"
parts[0] = "12"
parts[1] = "35"
parts[2] = "09"
validTimeString = true
String.split(DELIMITER)
会将字符串拆分为 N + 1 字符串,其中 N 是目标字符串中DELIMITER的出现次数。