In einem Projekt, das ich gerade arbeite, muss ich Escape-Sequenzen mit der Scanner-Klasse analysieren (mit Java in Linux). So schließen zum Beispiel die beiden END Tasten auf der Tastatur, schrieb ich zunächst den folgenden Code:Parsing mit Scanner findWithinHorizon Ausgabe
if(sc.findWithinHorizon("(\\G\\e\\[4~)?",0).length() > 0 || sc.findWithinHorizon("(\\G\\eOF)?",0).length() > 0) {
System.out.print("END"); //To see if it works
Mit diesem Code, bekomme ich keine Ausgabe (das Terminal nur friert). Nachdem ich das gesehen habe, habe ich die beiden Bedingungen in zwei verschiedene ifs getrennt:
if(sc.findWithinHorizon("(\\G\\e\\[4~)?",0).length() > 0)
System.out.print("END");
else if(sc.findWithinHorizon("(\\G\\eOF)?",0).length() > 0)
System.out.print("END");
Dann funktioniert es. Weiß jemand, warum es nicht mit dem OR-Operator funktioniert?
Vielen Dank im Voraus.