コンパイラ エラーは発生しませんが、プログラムを実行してケース 1 のメソッド lesFraFil() を実行しようとすると、次のエラーが発生します。
Exception in thread "main" java.lang.NumberFormatException: For input string: ";
"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Hybelhus.lesFraFil(Oblig4.java:63)
at Hybelhus.oversikt(Oblig4.java:134)
at Hybelhus.meny(Oblig4.java:107)
at Oblig4.main(Oblig4.java:23)
クラスメート全員に尋ねてみましたが、誰も助けてくれませんでした。
import easyIO.*;
class Oblig4{
public static void main(String[] args) {
int[] antallHybler = new int[18];
for (int i = 0; i < args.length; i++) {
antallHybler[i] = Integer.parseInt(args[i]);
}
Hybelhus hh = new Hybelhus(antallHybler);
hh.meny();
}
}class Hybelhus{
Out skjerm = new Out();
In lesFil = new In("Hybeldata.txt");
In tast = new In();
Out skrivTilFil = new Out("Hybeldata.txt", true);
Hybel[][] hybler = new Hybel[3][6];
void lesFraFil(){
int maaned = lesFil.inInt(";");
int aar = lesFil.inInt(";");
int totFortjeneste = lesFil.inInt(";");
int totAntallMåneder = lesFil.inInt(";");
int månedsleieVanligHybel = lesFil.inInt(";");
int månedsleieToppEtasjeHybel = lesFil.inInt(";");
skjerm.outln(maaned + ", " + aar + ", " + totFortjeneste + ", " + totAntallMåneder + ", " + månedsleieVanligHybel + ", " + månedsleieToppEtasjeHybel);
while(!lesFil.endOfFile()){
for(int i = 0; i < hybler.length; i++){
for(int j = 0; j < hybler[i].length; j++){
String tekst = lesFil.inLine();
if(lesFil == null){
continue;
}
String[] enArray = tekst.split("; ");
hybler[i][j] = new Hybel();
hybler[i][j].etasje = Integer.parseInt(enArray[0])-1;
hybler[i][j].rom = enArray[1].charAt(0);
hybler[i][j].leietager.saldo = Integer.parseInt(enArray[2]);
hybler[i][j].leietager = new Student(enArray[3]);
}
}
}
}
Etasjer[] etasje = new Etasjer[3];
Hybelhus(int[] antallHybler) {
for(int i = 0; i < etasje.length; i++){
etasje[i] = new Etasjer(antallHybler[i]);
}
}
void SkrivUt() {
for(int i = 0; i < etasje.length; i++){
System.out.println("hei");
}
}
void meny() {
int aksjon = 0;
while (aksjon != 8) {
skjerm.outln("\nMENY");
skjerm.outln("1. Skriv oversikt");
skjerm.outln("2. Registrer ny leietaker");
skjerm.outln("3. Registrer betaling fra leietaker");
skjerm.outln("4. Registrer frivillig utflytting");
skjerm.outln("5. Månedskjøring av husleie");
skjerm.outln("6. Kast ut leietakere");
skjerm.outln("7. Øk husleien");
skjerm.outln("8. Avslutt");
aksjon = tast.inInt();
switch (aksjon) {
case 1: oversikt(); break;
case 2: regLeietaker(); break;
case 3: regBetaling(); break;
case 4: regUtflytting(); break;
case 5: kjorHusleie(); break;
case 6: kastUt(); break;
case 7: okHusleie(); break;
case 8:; avslutt(); break;
default: System.out.println ("\nDu må taste inn et av de åtte valgene over");
break;
}
}
}
void oversikt() {
final int BREDDE1 = 10;
final int BREDDE2 = 35;
final int BREDDE3 = 25;
skjerm.out("Hybel", BREDDE1);
skjerm.out("Leietager", BREDDE2);
skjerm.out("Saldo", BREDDE3);
skjerm.outln("\n----------------------------------------------------\n");
lesFraFil();
}
void regLeietaker(){
}
void regBetaling() {
}
void regUtflytting(){
}
void kjorHusleie() {
}
void kastUt(){
}
void okHusleie() {
}
void avslutt() {
}
}
class Etasjer{
Hybel[] hybelNavn;
Etasjer(int antallHybler){
hybelNavn = new Hybel[antallHybler];
for(int i = 0; i < hybelNavn.length; i++){
char c = (char) i;
c += 'A';
hybelNavn[i] = new Hybel();
}
}
}
class Hybel{
int etasje;
char rom;
Student leietager;
Hybel() {
}
}
class Student{
int saldo;
String studentNavn;
Student(String studentNavn){
this.studentNavn = studentNavn;
}
}