jemartinsen81 Skrevet 18. oktober 2007 Rapporter Del Skrevet 18. oktober 2007 Hei hei, Det er noe som er gått i glemmeboken for meg. Dersom jeg vil at en int-variabel kun skal godta femsiffrede verdier, som f.eks "12345", hvilken funksjon skal jeg bruke? Den skal altså kunne sette antall siffer i verdien bruker taster inn, inn i en egen variabel, som brukes for å foreta en sjekk. Takk. Lenke til kommentar
Dj_Offset Skrevet 18. oktober 2007 Rapporter Del Skrevet 18. oktober 2007 if (n >= 10000 && n < 100000) ? Lenke til kommentar
jemartinsen81 Skrevet 18. oktober 2007 Forfatter Rapporter Del Skrevet 18. oktober 2007 Jepp er klar over den metoden, men den virker mer som en slags snarvei som ikke er helt korrekt å bruke i skolesammenheng... dog jeg kan ta feil. Jeg mener det er en funksjon spesielt for å måle antall siffer. Lenke til kommentar
Dj_Offset Skrevet 18. oktober 2007 Rapporter Del Skrevet 18. oktober 2007 Javel, koden er korrekt og gjør hva du har spesifisert. Du trenger bare litt innpakning rundt. Mulig du finner en penere måte å pakke dette inn på, men denne vil essensielt gjøre akkurat dette. -- pragmatisk c++ utvikler Lenke til kommentar
jemartinsen81 Skrevet 19. oktober 2007 Forfatter Rapporter Del Skrevet 19. oktober 2007 (endret) Javel, koden er korrekt og gjør hva du har spesifisert. Du trenger bare litt innpakning rundt.Mulig du finner en penere måte å pakke dette inn på, men denne vil essensielt gjøre akkurat dette. -- pragmatisk c++ utvikler Et medlemsnummer, f.eks, er det igrunn korrekt å klassifiere som en String, ettersom man ikke skal drive utregning med det... og med String variabler kan man ikke bruke metoden du foreslår. Trenger derfor den mer korrekte metoden for dette og. :-/ Endret 19. oktober 2007 av jemartinsen81 Lenke til kommentar
Qwark Skrevet 19. oktober 2007 Rapporter Del Skrevet 19. oktober 2007 Om du endrer medlemsnummeret til en String så kan du bruke if(minstring.Length>5){ Error!! } Lenke til kommentar
Dj_Offset Skrevet 19. oktober 2007 Rapporter Del Skrevet 19. oktober 2007 Et medlemsnummer, f.eks, er det igrunn korrekt å klassifiere som en String, ettersom man ikke skal drive utregning med det... og med String variabler kan man ikke bruke metoden du foreslår. Trenger derfor den mer korrekte metoden for dette og. :-/ Dette er jeg prinsippielt uenig med deg i. Dersom medlemsnummeret er en string har du nye problemstillinger du må ta hensyn til. I tillegg til at du må sjekke lengden på strengen er lik 5, så må du validere at strengen kun inneholder gyldige tegn, dvs tall, og at det første sifferet ikke kan være 0. Et annet moment, som stadig har blitt mindre relevant med årene, er at stringrepresentasjonen bruker mer minne enn tallrepresentasjonen. Dette er og forblir et tall, strengen er en representasjon av tallet. Løsningsforslagene oppsummert: Løsning #1: Gjøre om strengen til et tall for å sjekke om nummeret er gyldig boolean gyldig(String medlemsnr) { try { int nr = Integer.parseInt(medlemsnr); return nr >= 10000 && nr < 100000; } catch (NumberFormatException nfe) { return false; } } Løsning #2: Sjekke strengen (en kan bruke regex også) boolean gyldig(String medlemsnr) { if (medlemsnr.length() != 5) return false; return medlemsnr.charAt(0) > '0' medlemsnr.charAt(0) <= '9' && medlemsnr.charAt(1) >= '0' medlemsnr.charAt(1) <= '9' && medlemsnr.charAt(2) >= '0' medlemsnr.charAt(2) <= '9' && medlemsnr.charAt(3) >= '0' medlemsnr.charAt(3) <= '9' && medlemsnr.charAt(4) >= '0' medlemsnr.charAt(4) <= '9'; } Lenke til kommentar
jemartinsen81 Skrevet 19. oktober 2007 Forfatter Rapporter Del Skrevet 19. oktober 2007 (endret) Takk skal du ha, Length() var funksjonen jeg var ute etter ja. Eksempel på mitt bruk: http://pastebin.com/m39a52332 Endret 19. oktober 2007 av jemartinsen81 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå