scheitern Ich habe den folgenden Code, um interaktiv System.in für Drücken der Tasten Pfeil analysieren:findWithinHorizon hält lesen, während es sollte
Scanner sc = new Scanner(System.in);
String str;
if ((str = sc.findWithinHorizon("\\G\\033\\[C", 0)) != null)
System.out.println("RIGHT ARROW");
else if ((str = sc.findWithinHorizon("\\G\\033\\[D", 0)) != null)
System.out.println("LEFT ARROW");
wenn ich drücke zuerst die rechte Pfeil alles gut geht, aber wenn ich zum ersten Mal die Taste left one, findWithinHorizon hängt, wartet auf weitere Eingaben, während es fehlschlagen und null zurückgeben sollte.
Mit diesem Verhalten sehe ich nicht, wie diese Technik verwendet wird, um einen allgemeinen Parser für die Mustererkennung zu programmieren.
Irgendwelche Hinweise?
Dank, Francesc
Ich würde einen anderen Ansatz betrachten, vielleicht etwas entwickelt, um mit einem Schlüssel zu einer Zeit zu arbeiten (und kümmern sich um Pufferung, oder das Fehlen von oder was nicht) - das ist * akzeptieren Sie die Daten * und * dann * handle darauf. Dies ist ziemlich ähnlich wie bei einem A B/B A Lock Deadlock. –