Comprender el método findWithinHorizon del escáner

Estoy tratando de usar y entender el Scanner#findWithinHorizonmétodo de Java .

He escrito el siguiente fragmento de código que utiliza este método, pero no puedo entender cómo funciona.

 private static void findWithinHorizon() {
    String string = "Balkrishan Nagpal --> 1111, 2222, 3333";
    Pattern pattern = Pattern.compile("[0-9]+");

    Scanner scanner = new Scanner(string);

    while (scanner.hasNext()) {
        System.out.println("scanner.findWithinHorizon(pattern) = " + scanner.findWithinHorizon(pattern, 26));
    }
}

Cuando ejecuto el método anterior, obtengo el siguiente resultado

scanner.findWithinHorizon(pattern) = 1111
scanner.findWithinHorizon(pattern) = 2222
scanner.findWithinHorizon(pattern) = 3333

pero esperaría que la salida contenga solo

scanner.findWithinHorizon(pattern) = 1111

como he proporcionado el valor del horizonte como 26.

Tengo entendido que al encontrar el escáner de resultados coincidentes no irá más allá del índice 26 en la cadena.

¿Alguien puede explicar cómo está funcionando esto?

Respuesta 1

Estoy leyendo el HashMap.java. En la línea 917, los valores de la función () usaron valores variables. Sin embargo, busqué en todo el archivo java sin encontrar algunas variables definidas llamadas valores. ¿Cómo explicar esto? ...

Estoy trabajando en un archivo hexadecimal y mostrar su contenido, pero si el valor tenía "0". No apareció cuando lo imprimí. por ejemplo 0 0 0 b7 7a 7a e5 db 40 2 0 c0 0 0 9 18 16 0 e3 1 40 0 ​​0 3f 20 f0 1 5 ...

Entonces, mi profesor mencionó que una ruptura en una declaración if / if-else es un código "malo". ¿Qué quiere decir exactamente con eso? Además, ¿cómo puedo arreglar mi código que he escrito actualmente, porque lo hace ...

Tengo una secuencia de elementos sin clasificar y una secuencia de comparadores. Quiero aplicar todos los comparadores en la secuencia usando "thenComparing" (Multisort) ¿Hay una forma más elegante que la siguiente ...