Hello, I have written a program for an assignment and all was working well, I tested everything and all that was left was to put in a few error-messages. Then, I changed the format from ISO to utf-8 and when I tried to run it again it suddenly stops at line 72-73. I have read through the code again and again but I can't see the error (of course, I'm no pro) and I have tried changing the format back to ISO and copying the code to create a new ISO file, but nothing works. If anyone could look over the code and see if they can find the error I'd be very happy:)
import java.util.Scanner;
class Bilregister{
public static void main(String[] args) {
int aldersforskjell = 0;
System.out.println("Bil 1");
Bil bilEn = beOmOpplysningerForBil();
System.out.println("Bil 2");
Bil bilTo = beOmOpplysningerForBil();
if (bilEn.hentVekt() > bilTo.hentVekt()) {
System.out.printf("Størst vekt: %1$s som veier %2$s kilo.\n", bilEn.hentBilMerke(), bilEn.hentVekt());
} else if (bilEn.hentVekt() < bilTo.hentVekt()) {
System.out.printf("Størst vekt: %1$s som veier %2$s kilo.\n", bilTo.hentBilMerke(), bilTo.hentVekt());
} else {
System.out.printf("Størst vekt: Begge bilene veier %1$s kilo.\n", bilEn.hentVekt());
}
if (bilEn.hentArsmodell() > bilTo.hentArsmodell()) {
aldersforskjell = bilEn.hentArsmodell() - bilTo.hentArsmodell();
} else {
aldersforskjell = bilTo.hentArsmodell() - bilEn.hentArsmodell();
}
System.out.printf("Aldersforskjell mellom bilene er %s år.", aldersforskjell);
}
static boolean kjennetegnErGyldig(String kjennetegn) {
if (kjennetegn.length() != 7) {
System.out.println("Kjennetegn skal være 7 tegn");
return false;
}
char kjennetegnBokstav1 = kjennetegn.charAt(0);
char kjennetegnBokstav2 = kjennetegn.charAt(1);
if (! (kjennetegnBokstav1 >= 'A' && kjennetegnBokstav1 <= 'Z' && kjennetegnBokstav2 >= 'A' && kjennetegnBokstav2 <= 'Z') ) {
System.out.println("De første to tegnene i kjennetegn må være store bokstaver");
return false;
}
if (! (kjennetegn.charAt(2) >= '1' && kjennetegn.charAt(2) <= '9') ) {
System.out.println("Tegn 3 må være heltall mellom 1 og 9.");
return false;
}
String famousFinalFour = kjennetegn.substring(3, kjennetegn.length());
int tallPosisjon = 0;
while (tallPosisjon <= famousFinalFour.length()) {
if (! (famousFinalFour.charAt(tallPosisjon) >= '0' && famousFinalFour.charAt(tallPosisjon) <= '9') ) {
System.out.println("De fire siste sifrene må være heltall mellom 0 og 9.");
return false;
}
}
return true;
}
static Bil beOmOpplysningerForBil() {
int arsmodell, vekt;
String merke, kjennetegn;
Scanner tastatur = new Scanner(System.in);
System.out.println("Merke: ");
merke = tastatur.next();
System.out.println("Vekt: ");
vekt = tastatur.nextInt();
if (vekt < 300) {
System.out.println("Feilmelding!");
}
do {
System.out.println("Kjennetegn: ");
kjennetegn = tastatur.next();
}
while(kjennetegnErGyldig(kjennetegn) == false);
System.out.println("Årsmodell: ");
arsmodell = tastatur.nextInt();
Bil bilen = new Bil();
bilen.settVekt(vekt);
bilen.settBilMerke(merke);
bilen.settArsmodell(arsmodell);
bilen.settKjennetegn(kjennetegn);
return bilen;
}
}
There's another class aswell. I don't know if it's needed to see, but in case
class Bil{
String kjennetegn, merke;
int arsmodell, vekt;
/* Metoder som gir verdier til instansevariabler i klassen. */
void settKjennetegn(String kt){
kjennetegn=kt;
}
void settBilMerke(String m){
merke=m;
}
void settArsmodell(int am){
arsmodell=am;
}
void settVekt(int v){
vekt=v;
}
/* Metoder som leser verdier til instansevariabler. */
String hentKjennetegn(){
return kjennetegn;
}
String hentBilMerke(){
return merke;
}
int hentVekt(){
return vekt;
}
int hentArsmodell(){
return arsmodell;
}
}