2013-12-25 3 views
0
java.lang.NumberFormatException: For input string: ":" 

Что это значит? Я получаю вышеуказанную ошибку, если я запускаю код (ниже). Я начинаю здесь. и ..Что означает это NumberFormatException?

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

Показать код. – athabaska

+1

Это означает, что вы пытаетесь преобразовать '': "' в число. Не могу этого сделать. –

+0

В то время как код публикации дает правильный отступ и форматирует код, чтобы ожидать более качественных ответов и ответов – Deepak

ответ

2

, что означает, что вы не можете преобразовать String":" в Number как integer или double

см ниже ссылку

http://docs.oracle.com/javase/7/docs/api/java/lang/NumberFormatException.html

Согласно яве документации

Брошенной, чтобы указать, что приложение пытается преобразовать строки в одном из числовых типов, но строка не имеет соответствующий формат.

0

Это значит, что вы хотите преобразовать ":" в number, что недопустимо. Следовательно, вы получаете исключение. Лучше показать свой код

0

Лучший способ получить ответы быстрее & ответил, что ваш вопрос отправляет ваш код. Вы не можете преобразовать строку в число.

0

Как уже говорилось, Java не может преобразовать «15:» в число, потому что «:» не является цифрой. И наиболее вероятная причина этого является линия, как это:

int h1 = Integer.valueOf(jTextField10.getText().substring(0,2)); 

где вы расщепление строки времени на неправильном индексе, поэтому у вас есть «:» в нем.

UPDATE

Лучший способ расщепления времени строки, как "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 в целевой строке.

+0

Что такое String [] parts = time1.split (":"); делать? – user3090804

+0

Проверьте обновленный ответ. – Cebence

Смежные вопросы