23. maj 2005 - 19:20
Der er
8 kommentarer og 2 løsninger
Finde ud af om en String var. kan castes til en double
Jeg vil gerne inden jeg bruger Double.parseDouble(), undersøge om den String jeg skal have konverteret til double nu også kan konverteres korrekt. Altså at den er på form som en double 123.456 etc.
Annonceindlæg fra Opentext
Er der noget i vejen for at bruge try/catch ?
Medmindre der skal testes rigtigt mange gange med en meget høj andel ikke valide tal så er try catch på NumberFormatException det bedste. I andre tilfælde kan du bruge regex til at teste formatet med.
Muligvis ikke, men så får jeg jo ikke udført der gerne skulle klares selvom Strengen ikke kan parses til double? udfør noget kode.. udfør noget kode.. if(kan parses) -> parse skidtet udfør noget kode.. udfør noget kode.. catch(kan ikke parse)
enten rokerer du lidt rund på din logik så det hænger sammen eller så laver du en lille metode til det - her er en til int: private static boolean test1(String s) { try { Integer.parseInt(s); return true; } catch (NumberFormatException e) { return false; } } som du nemt kan omskrive til double.
Jeg er ikke helt med? Du kan jo gøre følgende: udfør noget kode.. udfør noget kode.. try {tal = Double.parse ("3.5"); } catch (NumberFormatException e) {tal = 0; } udfør noget kode.. udfør noget kode.. Eksempelvis.
Må man gerne have en try/catch blok inden i en anden try/catch blok? Altså sådan: try { udfør noget kode.. udfør noget kode.. try {tal = Double.parse ("3.5"); } catch (NumberFormatException e) {tal = 0; } udfør noget kode.. udfør noget kode.. } catch(en anden ex)
ja omend jeg ikke er sikker på at jeg kan lide konstruktionen
Nej ok, det har jeg bare altid troet var noget skidt, men jeg kan jo som du siger pakke det ind i en funktion for at det bliver lidt pænere. Tror jeg har fået det info jeg havde brug for. I kommer til at dele point. Tak for hjælpen.
Kurser inden for grundlæggende programmering