Wie funktioniert die findWithinHorizon-Java-Methode?

Wie funktioniert die findWithinHorizon Java Methode? - Dummies

Ohne zu sehr ins Detail zu gehen, hier ist, wie der findWithinHorizon (".", 0). charAt (0) -Technik funktioniert: Die findWithinHorizon-Methode von Java sucht nach Dingen in der Eingabe. Die Dinge, die die Methode findet, hängen von dem Zeug ab, das Sie in Klammern gesetzt haben. Ein Aufruf von findWithinHorizon (" d d d", 0) sucht beispielsweise nach einer Gruppe, die aus drei Ziffern besteht. Mit der folgenden Codezeile

 System. aus. println (Tastatur. findWithinHorizon (" d  d  d", 0)); 

Sie können

 Testen 123 Testen Testen 

und der Computer antwortet mit der Anzeige von

 123 

Im Aufruf findWithinHorizon (" d d d", 0) steht jeweils d für eine einzelne Ziffer. Dieses d Geschäft ist eine von vielen Abkürzungen im speziellen Code mit dem Namen reguläre Ausdrücke .

Hier ist etwas Seltsames. In der Welt der regulären Ausdrücke steht ein Punkt für irgendeinen Charakter überhaupt. (Das heißt, ein Punkt steht für "ein beliebiges Zeichen, nicht notwendigerweise ein Punkt".) So informiert findWithinHorizon (".", 0) den Computer über das nächste Zeichen, das der Benutzer auf der Tastatur eingibt. Wenn Sie versuchen, ein einzelnes Zeichen einzugeben, ist findWithinHorizon (".", 0) sehr nützlich.

Im Aufruf findWithinHorizon (" d d d", 0) teilt die 0 mit findWithinHorizon die Suche bis zum Ende der Eingabe fort. Dieser Wert 0 ist ein Spezialfall, da etwas anderes als 0 die Suche auf eine bestimmte Anzahl von Zeichen beschränkt. (Deshalb enthält der Methodenname das Wort horizon . Der horizon ist soweit die Methode sieht.) Hier ein paar Beispiele:

  • Mit der gleichen Eingabe Testen 123 Testen Beim Testen gibt der Aufruf findWithinHorizon (" d d d", 9) null zurück. Sie gibt null zurück, da die ersten neun Zeichen der Eingabe (die Zeichen Test 1 - sieben Buchstaben, ein Leerzeichen und eine Ziffer) nicht drei aufeinander folgende Ziffern enthalten. Diese neun Zeichen stimmen nicht mit dem Muster d d d überein.

  • Mit derselben Eingabe gibt der Aufruf findWithinHorizon (" d d d", 10) ebenfalls null zurück. Es gibt null zurück, da die ersten zehn Zeichen der Eingabe (die Zeichen Test 12) nicht drei aufeinander folgende Ziffern enthalten.

  • Mit derselben Eingabe gibt der Aufruf findWithinHorizon (" d d d", 11) 123 zurück. Er gibt 123 zurück, da die ersten 11 Zeichen der Eingabe (die Zeichen Test 123) diese 3 aufeinander folgenden Ziffern enthalten.

  • Mit dem Test A57B442123 gibt der Aufruf findWithinHorizon (" d d d", 12) 442 zurück. Es gibt 442 zurück, da unter den ersten 12 Zeichen der Eingabe (die Zeichen A57B442123 Test) die erste Sequenz aus von 3 aufeinanderfolgenden Ziffern ist die Sequenz 442.

Aber warte! Um ein einzelnes Zeichen über die Tastatur zu erfassen, rufen Sie findWithinHorizon (".", 0) auf. KARAt (0). Welche Rolle spielt charAt (0) beim Lesen eines einzelnen Charakters? Jeder findWithinHorizon-Aufruf verhält sich so, als würde er eine Reihe von Zeichen finden, nicht nur ein einzelnes Zeichen. Selbst wenn Sie findWithinHorizon (".", 0) aufrufen und der Computer nur einen Buchstaben von der Tastatur abruft, behandelt das Java-Programm diesen Buchstaben als eines von möglicherweise vielen Eingabezeichen.

Der Aufruf von charAt (0) kümmert sich um das Mehrzeichenproblem. Dieser Aufruf von charAt (0) weist Java an, das erste Zeichen aus einem der Zeichen auszuwählen, die findWithinHorizon abruft.