Java Lambda | Encontrar la posición primera aparición de una matriz de cadenas en una cadena

ASF:

Quiero construir un método int getIndexOfFirstFound(String text, String[] words).

El método de recibir un texto y matriz de palabras y debe devolver el índice de la primera palabra que se encuentra.

Sé que hacerlo con iteración simple, como esto:

for (String word : words) {
    if (text.indexOf(word) != -1) return text.indexOf(word);
}
return -1;

pero para mi formación miro cómo hacerlo con lambda, si es posible ... Sé que puedo comprobar si la cadena contiene una palabra de la matriz: Arrays.stream(words).parallel().anyMatch(text::contains)pero no sé cómo devolver el índice ..

Estarán encantados de saber cómo encontrar el índice palabra primero encontrado con forma moderna, gracias!

Ejemplo PS:

Text= "Hola soy su texto, ¿cómo estás?" Words= [ "Su", "son"]

El resultado debe ser el índice de "su" (10)

ernest_k:

El equivalente más simple de su ciclo for es

int getIndexOfFirstFound(String text, String[] words) {
    return Arrays.stream(words)
            .mapToInt(text::indexOf)
            .filter(i -> i >= 0)
            .findFirst()
            .orElse(-1);
}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=477360&siteId=1
Recomendado
Clasificación