2 svar
1873 visningar
leoo behöver inte mer hjälp
leoo 45 – Fd. Medlem
Postad: 5 maj 2019 13:25

Programmering 1, A-uppgift

Hej, jag läser Programmering 1 just nu och jag har skrivit klart min kod, men jag vill göra det lite mer robust. Jag har kollat youtube och google men inte hittat någon lösning till mitt problem. 

 

Uppgiften går ut på att beräkna statlig inkomstskatt och jag har skrivit koden så att programmet fungerar som det ska.

Programmet ska låta användaren mata in sin årsinkomst.

Sedan ska programmet beräkna hur mycket skatt användaren ska betala.

MEN jag har ett litet problem. Jag har skrivit koden så att när användaren matar in sin årsinkomst, får hen bara mata in siffror. Och matar användaren in något annat tecken så informeras hen om det och får försöka igen. Har skrivit det såhär:

do { 
inmatning = JOptionPane.showInputDialog(null,"Mata in din årsinkomst:",
"Statlig inkomstskatt - Årsinkomst", JOptionPane.PLAIN_MESSAGE); där hen får mata in årsinkomst

if (inmatning == null) {
JOptionPane.showMessageDialog(null,
"Programmet har avslutats av användaren.",
"Statlig Inkomstskatt", JOptionPane.PLAIN_MESSAGE); 
System.exit(0);
}

else if (!inmatning.matches("[0-9]+")) { 
JOptionPane.showMessageDialog(null,
"Du har matat in otillåtna tecken." +
"\n" + "Inmatningen får bara bestå av siffror." +
"\n" + "Var god och försök igen.",
"Statlig Inkomstskatt - Fel", JOptionPane.INFORMATION_MESSAGE); 
}
} while (!inmatning.matches("[0-9]+"));

 

Den delen fungerar som jag ska. Men jag har gett variablerna datatypen double. Och jag vill att användaren ska kunna mata in decimaltal. Men eftersom man måste skriva in ett kommatecken eller en punkt för det, så säger programmet att användaren matat in otillåtna tecken. 

 

Det är en petitess, men det bidrar till programmets robusthet och jag vill få mitt program att tillåta decimaltal.

Jag vill inte skriva ut hela koden här, på grund av att jag kanske åker på plagiat. Om hela koden behövs kan jag skicka den i PM.

 

Tack på förhand.

 

Mvh.

Laguna Online 30711
Postad: 5 maj 2019 13:30

Du kan utöka ditt reguljära uttryck så att det också matchar punkt och komma. 

leoo 45 – Fd. Medlem
Postad: 5 maj 2019 13:41
Laguna skrev:

Du kan utöka ditt reguljära uttryck så att det också matchar punkt och komma. 

Herregud.....

 

Tack ska du ha! 

 

Jag har löst det. 

Svara
Close