Toon posts:

[Java] String -> int cast probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem bij het schrijven van een (relatief simpel) Java-programma, en kan er maar niet uitkomen.
Dit is het betreffende stukje code.
code:
1
2
3
        String tmpstr = tijd.getText();
        int tmpint = 0;
        tmpint = Integer.getInteger(tmpstr).intValue();


'tijd' is hierbij een TextField, waar elke keer dat ik het programma testen niets meer of minder dan een integer van 1 tot 10 instond. Toch, lijkt het programma wanneer het bij de derde regel uit dit stukje belandt, waar ik een poging doe het getal van het TextField in een int op te slaan, elke keer te crashen met een NullPointerException.
Heeft iemand enig idee wat het probleem zou kunnen zijn?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Nou ken ik geen Java, maar moet je niet gewoon dit doen?
Java:
1
tmpint = tmpstr.intValue();

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 15-10-2025

ripperke

w00t!

code:
1
2
3
String temp = "10";
int getal = Integer.parseInt(temp);
System.out.println(getal);

[ Voor 15% gewijzigd door ripperke op 09-04-2006 14:10 ]

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


  • Xandrios
  • Registratie: Februari 2001
  • Laatst online: 16-02 21:14
code:
1
2
3
4
String tmpstr = tijd.getText();
System.out.print(tmpstr);
int tmpint = 0;
tmpint = Integer.getInteger(tmpstr).intValue();


Even testen of tmpstr wel daadwerkelijk een waarde heeft? :)

  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Je zou ook nog dit kunnen doen:
Java:
1
2
String tmpstr = tijd.getText();
int tmpint = (new Integer(tmpstr)).intValue();

[ Voor 5% gewijzigd door Jeldert op 09-04-2006 14:14 ]

Juist


  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Ja of gewoon:

Java:
1
2
3
4
5
6
7
8
9
int blaat;
try
{
    blaat = Integer.parseInt(tijd.getText());
}
catch (NumberFormatException e)
{
    //niet een nummer
}


Sim-pel ;)

edit:... spuit 11

[ Voor 15% gewijzigd door prototype op 09-04-2006 14:16 ]


  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Hallo, NullPointerException, dus wat Xandrios zegt :)

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

grhmpf schreef op zondag 09 april 2006 @ 14:18:
Hallo, NullPointerException, dus wat Xandrios zegt :)
Dat is uiteraard een preconditie dat je dat vooraf test. :P
Jeldert schreef op zondag 09 april 2006 @ 14:12:
Je zou ook nog dit kunnen doen:
Java:
1
2
String tmpstr = tijd.getText();
int tmpint = (new Integer(tmpstr)).intValue();
Dat intValue() is niet eens nodig, door auto-unboxing.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
grhmpf schreef op zondag 09 april 2006 @ 14:18:
Hallo, NullPointerException, dus wat Xandrios zegt :)
Hallo, nee. De String tmpstr is niet leeg of null, er is echter geen systemproperty met de naam van die string (niet zo gek met een string 2325235 of iets dergelijks), en dat veroorzaakt de exception. Als je namelijk getInteger(tmpstr, 0) doet, "werkt" het prima, dus met tmpstr is niks mis. Het probleem is, zoals hierboven al aangehaald, dat getInteger heel iets anders doet, en dat hij eigenlijk parseInt zoekt.

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 01-02 16:45
prototype schreef op zondag 09 april 2006 @ 14:20:
[...]
Dat intValue() is niet eens nodig, door auto-unboxing.
Volgens mij is dat alleen in java 5. Eerdere versies moet het wel.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]

Pagina: 1