Ich schreibe Code, um einen JavaCC-Parser zu generieren, der die Eingaben eines Benutzers liest und prüft, ob es sich um einen der in meinem Code definierten Sprachen handelt.Wie kann ich feststellen, ob die Benutzereingabe leer ist?
Eine Bedingung für die zulässige Eingabe ist, dass sie nicht leer sein darf - d. H. Der Benutzer muss einen anderen Zeichenblock (mit einer Länge größer oder gleich 1) als Leerraum " "
eingeben.
Ich möchte feststellen können, ob die Eingabe des Benutzers leer ist, so dass eine Fehlermeldung auf dem Bildschirm in diesem Fall ausgedruckt werden kann.
Ich habe eine Produktion geschrieben (a.k.a Regel), die die Benutzereingabe erhält; Es heißt Input()
und wird für ungültig erklärt. Im Hauptverfahren, ich habe versucht, Code zu schreiben, wenn die Eingabe des Benutzers bestimmt leer ist, durch Schreiben:
if parser.Input() == null {
// print error message onto the screen
}
Allerdings bekomme ich eine Fehlermeldung auf dem Terminal, wenn ich versuche, das besagt, zu kompilieren, dass ein 'void' Typ ist hier nicht erlaubt (ich bin mir sicher, dass es sich um Input handelt).
Könnte ich bitte einen Hinweis/Tipps haben, um dieses Problem zu umgehen?
Eine void-Methode gibt keinen Wert zurück. Daher ist es nicht sinnvoll, den von einer void-Funktion zurückgegebenen Wert mit null (oder irgendetwas anderem) zu vergleichen. Aus diesem Grund meldet der Compiler einen Fehler. –