Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich hab noch mal bei einem Listing eine ganze Reihe von Fehlern, aber mit den Meldungen kann ich absolut nichts anfangen. Auf dem reiter "Problems" steht diesmal gar nix und Tippfehler konnte ich auch bei mehrmaligem gründlichen Durchschauen keine finden.
Das Listing selbst geht so:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import static java.lang.System.out;
public class ShowRooms_Twodimensional_Objects {
public static void main(String[] args) throws FileNotFoundException {
Room rooms[] [] = new Room[5] [10];
Scanner myScanner = new Scanner(new File("RoomList_2D.txt"));
for (int floor=0; floor<5; floor++) {
for (int roomNum=0; roomNum<10; roomNum++) {
rooms[floor] [roomNum] = new Room();
rooms[floor] [roomNum].readRoom(myScanner);
}
}
for (int floor=4; floor<=0; floor--) {
out.println("Floor " + floor + ":");
for (int roomNum=0; roomNum<10; roomNum++) {
out.print(" ");
rooms[floor] [roomNum].writeRoom();
}
out.println();
}
}
}
Die Datei "RoomList_2D.txt", die da eingelesen wird, häng ich mal an. Die Methoden >readRoom< und >writeRoom< sind in der Klasse >Room< definiert, die ich schon vorher angelegt hab - die ist bei den Fehlermeldungen ja auch dabei, da kann aber eigtl nichts sein, die hab ich nämlich vorher auch schon benutzt - vorher ging es um zweidimensionale Arrays von Werten, jetzt geht's halt um zweidimensionale Arrays von Objekten.
Kann mir da jemand weiterhelfen?
Danke im Voraus :toll:!
Gruß,
Javaswillerdenn
wie gesagt, die Klasse >Room< hab ich vorab erstellt und im letzten Beispiel schon mal verwendet, fehlerfrei. Kann mir schwerlich vorstellen, daß es daran liegt - hab sie natürlich auch noch mal angeschaut. Ich poste sie aber mal hier, will ja nicht behaupten, da so firm zu sein...
Java:
import static java.lang.System.out;
import java.util.Scanner;
import java.text.NumberFormat;
class Room {
// Die Klasse >Room< hat drei Variablen und eine statische Variable >currency<.
private int guests;
private double rate;
private boolean smoking;
private static NumberFormat currency = NumberFormat.getCurrencyInstance();
// Die Methode readRoom liest Informationen aus einer Datei ein. Die Datei liegt im Projektverzeichnis.
public void readRoom(Scanner diskScanner) {
guests = diskScanner.nextInt();
rate = diskScanner.nextDouble();
smoking = diskScanner.nextBoolean();
}
//Diese Methode gibt verschiedene Informationen aus.
public void writeRoom() {
out.print(guests);
out.print("\t");
out.printf(currency.format(rate));
out.print(" \t");
/* Das ist ein sog. >Bedingungsoperator: Wenn die Bedingung (hier >> smoking ? <<) wahr ist, wird
* der erste Ausdruck (hier "ja") ausgegeben, andernfalls der zweite (hier "nein").
*/
out.println(smoking ? "ja" : "nein");
}
}
Im Deutschen schreibt man eine Kommazahl mit nem Komma, daher kann Java die double nicht parsen. Entweder änderst du die Datei oder du konfigurierst den Scanner entsprechend dass er ein anderes Locale nutzt.
Oh ja, richtig, das ist mir vorher nicht aufgefallen: Die Datei >RoomList<, die ich vorher verwendet hab, stammte von der CD, war also schon angepasst mit >,<. Die jetzt runtergeladene Datei >RoomList_2D< ist nicht angepasst und verwendet den >.<
Danke! Ich denke, jetzt geht es dann.
Gruß,
jetzt wird das ganze mysteriös: Jetzt kommt kein Fehler mehr, sondern eine korrekte Ausführungsmeldung - aber was nicht kommt ist der erwartete Output des Programms...
Was kann da dahinterstecken?
Gruß,