spinnt Java oder EprogIO oder mein PC?

  • hab dem reiter mal ein mail geschrieben. im anhang sollte die verbesserte version von readWord stehn (ist eine methode innerhalbs einer testklasse mit hauptprogramm, die von der EprogIO abgeleitet ist). das .txt hinten sollte gelöscht werden, hab ich angefügt weil das forum kein .java mag
    zwar steht \uFFFF in unicode für ein undefiniertes zeichen, mit dem man strings abschließen KANN. möglicherweise tun das die meisten (alle?) editoren aber nicht. vielleicht gibts auch mehrere solcher zeichen. der vergleich jedes einzelnen characters mit \uFFFF, wie es im original-readword gemacht wird, funktioniert jedenfalls nicht.
    stattdessen kann man aber die Methode Character.isDefined(char c) anwenden und darauf die abfrage aufbauen.

  • \uFFFF, besser gesagt -1, wird bei zeichenorientiertem Lesen üblicherweise für EOF verwendet (vgl. getchar() in C) und wird von der lesenden Methode selbst generiert, steht also nicht in der Datei selbst.

    Dass readWord() entgegen der eigenen Dokumentation nicht darauf reagiert, ist eine andere Sache und auch der Grund warum noch ein Zeichen nach dem letzten Wort in der Inputdatei stehen muss. Es wäre meiner Meinung nach sinnvoller gewesen, eben diese Tatsache zu bereinigen, als gewisse Zeichen schon im Input zu filtern, weil eine solche Vorgehensweise ein Programm nicht unbedingt "gutmütiger" macht (wer jemals Umlaute in einen 7-Bit Lexer gefüttert hat, weiß wovon ich rede ;) ).

    Why bother spending time reading up on things? Everybody's an authority, in a free land.