Hallo, ich bin mal wieder hier und habe eine frage
ich versuche einen string in einen integer zu parsen und wenn dieser string länger oder kürzer als
der int wertebereich ist soll eine numberformatexception geworfen werden! Leider geht er schon nach der ersten Eingabe in den catch zweig kann sich das mal wer anschauen? Es kommt immer eine ausgabe wie "null2"
bei jeder Zahl die ich eingebe also nehme ich an irgendwo wird der string concat null sein, doch ich kann keine fehler finden
Danke Fridolin
ich versuche einen string in einen integer zu parsen und wenn dieser string länger oder kürzer als
der int wertebereich ist soll eine numberformatexception geworfen werden! Leider geht er schon nach der ersten Eingabe in den catch zweig kann sich das mal wer anschauen? Es kommt immer eine ausgabe wie "null2"
bei jeder Zahl die ich eingebe also nehme ich an irgendwo wird der string concat null sein, doch ich kann keine fehler finden
Danke Fridolin
Code:
zaehler.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent key1)
{
concat = "";
int keycode = key1.getKeyChar();
if(keycode == KeyEvent.VK_ADD)
{
}
if(keycode == KeyEvent.VK_SUBTRACT)
{
}
if(keycode == KeyEvent.VK_MULTIPLY)
{
}
if(keycode == KeyEvent.VK_DIVIDE)
{
}
if(keycode == KeyEvent.VK_C)
{
concat = "";
for(int s = 0; s < zcounts - 1; s++)
{
key[s] = "";
}
zcounts = 1;
i = 0;
zaehler.setText("");
}
if(keycode >= KeyEvent.VK_0 && keycode <= KeyEvent.VK_9)
{
zflag = 0;
key[i] = String.valueOf( key1.getKeyChar() );
i++;
zcounts++;
}
else
{
switch( keycode )
{
case KeyEvent.VK_ENTER: nenner.requestFocus();
zflag = 2;
break;
case KeyEvent.VK_LEFT: zflag = 2;
break;
case KeyEvent.VK_RIGHT: zflag = 2;
break;
case KeyEvent.VK_UP: zflag = 2;
break;
case KeyEvent.VK_DOWN: zflag = 2;
break;
case KeyEvent.VK_ESCAPE: setVisible(false);
dispose();
System.exit(0);
break;
case KeyEvent.VK_BACK_SPACE: zflag = 2;
concat = "";
key[zcounts - 1] = "";
zcounts--;
i--;
break;
}
if(keycode != KeyEvent.VK_BACK_SPACE && keycode != KeyEvent.VK_ESCAPE && keycode != KeyEvent.VK_DOWN && keycode != KeyEvent.VK_UP && keycode != KeyEvent.VK_RIGHT && keycode != KeyEvent.VK_LEFT && keycode != KeyEvent.VK_ENTER)
{
System.out.println("Das war keine Zahl");
zflag = 1;
}
}
}
public void keyReleased(KeyEvent e44)
{
switch( zflag)
{
case 0 :
try
{
for(int j = 0; n < zcounts - 1; j++)
{
concat += key[j];
int zahl = Integer.parseInt(concat); <<<>>>
}
}
catch(NumberFormatException e11)
{
if(concat.substring(0, 1).equals("-"))
{
System.out.println("Parameter < -2147483648: Wertebereich von int liegt bei -2147483648 ... 2147483647");
zaehler.setText("");
zcounts = 1;
i = 0;
concat = "";
}
else
{
System.out.println("Parameter > 2147483647: Wertebereich von int liegt bei -2147483648 ... 2147483647");
zaehler.setText("");
zcounts = 1;
i = 0;
concat = "";
}
}
zaehler.setText( concat );
break;
case 1 :
System.out.println("Bitte geben sie einen anderen Zaehler ein");
zaehler.setText("");
break;
case 2 :
break;
}
}
});