Avatar billede shako Novice
03. oktober 2012 - 22:42 Der er 7 kommentarer og
1 løsning

NumberFormatException Try/Catch

Hvis jeg har et input (String) og jeg forventer at få en int, men gerne vil sikre mig bruger jeg

try Integer.parseInt
Catch(NumberFormatException nfe)

Og det virker også helt fint, men hvad hvis jeg vil sikre mig mit input ikke er en int? Skal jeg så bruge en omvendt NumberFormatException hvor en Exception er mit success kriterie?
Avatar billede arne_v Ekspert
03. oktober 2012 - 22:48 #1
Det kunne du, men det ville vaere misbrug af exception.

Mit forslag et regex test.
Avatar billede arne_v Ekspert
03. oktober 2012 - 22:50 #2
Pattern p = Pattern.compile("^\\d+$");
if(!p.matcher(s).matches()) {
  ...
}
Avatar billede Broxigar Praktikant
04. oktober 2012 - 13:50 #3
Du kan lave en funktion

isInteger(string input) {
try {
  Integer.parseInt(input);
  return true;
} catch (Exception e) {
  return false;
}
}

og så kan du lave et check

if (isInteger(string)){
  do something
}
else
{
  Print error
}
Avatar billede shako Novice
05. oktober 2012 - 09:58 #4
Broxigar det er en fin løsning, men det hjælper ikke med strenge som fx DA20 som er kombineret string og int
Avatar billede Broxigar Praktikant
05. oktober 2012 - 14:26 #5
Det skrev du ikke noget om ;) du ville checke om dit input var en int, og ikke om der var heltal i dine strings.

Du kan prøve at checke denne thread og se de tip de giver:

http://stackoverflow.com/questions/4388546/how-to-find-of-if-a-string-contains-and-integer-or-not
Avatar billede arne_v Ekspert
05. oktober 2012 - 15:10 #6
Hvis du vil tillade noget inden tal:

Pattern p = Pattern.compile("^.*\\d+$");
if(!p.matcher(s).matches()) {
  ...
}
Avatar billede shako Novice
10. april 2013 - 08:04 #7
Undskyld det meget sene svar, men hvis arne_v vil ligge et svar så får du point :)
Avatar billede shako Novice
03. juni 2013 - 11:51 #8
nåh ikke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester